android开发笔记之APP在不同的项目中适配(支持多种屏幕)

android开发笔记之APP在不同的项目中适配(支持多种屏幕)why:  最近在做一个APP的不同项目,不同屏幕的适配工作,发现我们以前自己写的代码,确实是不具备通用和可移植性,所以写下了下面的这些,希望以后写的代码具有更好的匹配性,能支持不同的屏幕,有更好的效果。  How:1.为不同屏幕提供不同的图片 res/drawable     res/drawable-xhdpi    res/drawable-xhdpi

    why:

    最近在做一个APP的不同项目,不同屏幕的适配工作,发现我们以前自己写的代码,确实是不具备通用和可移植性,所以写下了下面的这些,希望以后写的代码具有更好的匹配性,能支持不同的屏幕,有更好的效果。

   How:

1.为不同屏幕提供不同的图片

  res/drawable        

res/drawable-xhdpi       res/drawable-xhdpi-1280×720     (特定的屏幕1280*720)

res/drawable-hdpi       res/drawable-hdpi-960×540         (特定的屏幕960*540)

res/drawable-mdpi 

res/drawable-ldpi 

res/drawable-land   (横屏图片)

res/drawable-land-ldpi   (横屏图片)

2.为不同屏幕提供不同的布局文件

  res/layout        

res/layout-xhdpi       res/layout-xhdpi-1280×720     (特定的屏幕1280*720)

res/layout-hdpi       res/layout-hdpi-960x 540         (特定的屏幕960*540)

res/layout-mdpi 

res/layout-ldpi 

res/layout-land   (横屏布局文件)

res/layout-land-ldpi   (横屏布局文件)

3.为不同屏幕提供不同的value,特别是dimens.xml的运用

 res/values        

res/values-xhdpi /dimens.xml      res/values-xhdpi-1280×720/dimens.xml     (特定的屏幕1280*720)

res/values-hdpi/dimens.xml       res/values-hdpi-960×540/dimens.xml         (特定的屏幕960*540)

res/values-mdpi /dimens.xml

res/values-ldpi /dimens.xml

res/values-land/dimens.xml   (横屏values)

res/values-land-ldpi /dimens.xml  (横屏values)

使用样例:

(1)字体大小匹配

Dimens.xml (res\values-hdpi):

     <dimen name=”dialpad_fragment_cancel_text_size“>45sp</dimen>

Dimens.xml (res\values-hdpi-854×480):

        <dimen name=”dialpad_fragment_cancel_text_size“>25sp</dimen>

代码读取:

      float size = getResources().getDimensionPixelSize(R.dimen.dialpad_fragment_cancel_text_size);

(2)间距匹配

Dialpad_fragment.xml (res\layout-hdpi-854×480):             

      android:layout_marginTop=”@dimen/konka_text_callerLoc_margintop
Dialpad_fragment.xml (res\layout-xhdpi-1280×720):             

      android:layout_marginTop=”@dimen/konka_text_callerLoc_margintop

Dimens.xml (res\values):

     <dimen name=”konka_text_callerLoc_margintop“>45dip</dimen>

Dimens.xml (res\values-hdpi):

      <dimen name=”konka_text_callerLoc_margintop“>33dip</dimen>

    Best Practices:

1.在布局文件中合理使用 wrap_content, fill_parent,  单位考虑使用dp

2.布局尽量使用相对布局(  RelativeLayout),不要使用绝对布局(AbsoluteLayout)

3.在代码中,不要使用 hard-coded pixel 值。

eg:  

myView.getWidth()

参考资料:

1.http://developer.android.com/guide/practices/screens_support.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37606.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注