Android屏幕適配方案:AndroidAutoLayout

jopen 9年前發布 | 119K 次閱讀 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)

項目主頁:http://www.baiduhome.net/lib/view/home/1448282899110

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!