Android屏幕適配方案:AndroidAutoLayout
Android屏幕適配方案,直接填寫設計圖上的像素尺寸即可完成適配。
非常感謝 : 吃土豆的人 的協作。
效果圖
最大幅度解決適配問題,并且最大化方便開發者。
so,看下用法:
你沒有看錯,拿到設計稿,在布局文件里面直接填寫對應的px即可,px:這里的px并非是Google不建議使用的px,在內部會進行轉化處理。
看下不同分辨率下的效果:
768*1280,Andriod 4.4.4
480*800,Android 2.3.7
上述兩個機器的分辨率差距相當大了,但是完美實現了適配,最為重要的是:
- 再也不用拿著設計稿去想這控件的寬高到底取多少dp
- 再也不用去為多個屏幕去寫多個dimens
- 再也不用去計算百分比了(如果使用百分比控件完成適配)
- 再也不用去跟UI MM去解釋什么是dp了
你所要做的就是抄抄設計稿上面的px,直接寫入布局文件。
還有很多好處,比如上面的Item里面元素比較多,如果標識的比較全面,一個FrameLayout,里面的View填寫各種marginLeft,marginTop就能完美實現,幾乎不需要嵌套了。
用法
- Android Studio
將autolayout引入
dependencies { compile project(':autolayout') }
在你的項目的AndroidManifest中注明你的設計稿的尺寸。
<meta-data android:name="design_width" android:value="768"></meta-data> <meta-data android:name="design_height" android:value="1280"></meta-data>
在你的Activity的onCreate里面寫入:AutoLayout.getInstance().auto(this, true);
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AutoLayout.getInstance().auto(this, true); }
在布局文件中編寫時,將:
- LinearLayout -> AutoLinearLayout
- RelativeLayout -> AutoRelativeLayout
- FrameLayout -> AutoFrameLayout
目前支持屬性
- layout_width
- layout_height
- layout_margin(left,top,right,bottom)
- pading(left,top,right,bottom)
- textSize
注意事項
- TextView的高度問題
設計稿一般只會標識一個字體的大小,比如你設置textSize="20px",實際上TextView所占據的高度肯定大于20px,字的上下都會有一定的建議,所以一定要靈活去寫字體的高度,比如對于text上下的margin可以選擇盡可能小一點。或者選擇別的約束條件去定位(比如上例,選擇了marginBottom)
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!