在Android适应方案汇总(一个)、(两)在。我们理解一些基本概念。
那么详细的开发,我们应该重视起来。
首先,我们需要知道。关键的事实是,这两个适配器:
(1)。这点在单位的使用上用dp、sp以及图片资源存放于不同的drawable目录就能够解决这个问题;
(2)不同尺寸的适配,这点主要靠将相关值以及布局文件放置于不同的目录中来解决。
2.1 values目录
能够在project下创建不同的values目录:values-sw480dp, values-sw600dp,
values-sw720dp-land等。比方一个控件的宽度,在10寸pad上是10dp,在8寸pad
上是5dp。

这时。你能够定义一个变量。button_width,然后在values-sw600dp
下写<dimen name=”button_width“>5dp</dimen>。在values-sw720-land下写
<dimen name=”button_width“>10dp</dimen>。这样就达到了在不同尺寸pad上,
对应控件大小不一样的效果。
2.1 layout目录
假设在不同尺寸设备上展示的布局有明显区别,只用values不同已经难以控制,
那么就能够考虑写不同的布局文件置于不同的layout目录下。android会依据设备
尺寸去载入对应目录下的布局文件。如:layout-sw480dp。layout-sw600dp,
layout-sw700dp等。
值得注意的是,假设不是非常有必要,尽量採用2.1方案,方便维护。假设尺寸和分辨率都不同。
那么就要结合(1)、(2)考虑了。

(补充:事实上values目录和layout目录不不过依据尺寸推断。也和分辨率有关,不过在通常情况下。

综合计算考虑。仅依据尺寸推断就能够了:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).480dp: a tweener tablet like the Streak (480x800 mdpi).600dp: a 7” tablet (600x1024 mdpi).720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
600dp的含义是:代表这个设备的最短的那一边。


获取设备的最短边的代码是:Configuration config = getResources().getConfiguration();

int smallestScreenWidth = config.smallestScreenWidthDp;

这个时候拿smallestScreenWidth 与600想比較就能够知道该设备是否能读取里面的资源了。


除此之外,为了方便适配,在编码时我们还应该注意什么呢,主要有下面几点:

(1)多使用权重(android:layout_weight)

尤其是在tab切换布局,listview title及Item布局等情况下;
(2)设置宽度和高度时,尽量使用match_parent和wrap_content,避免把控件宽高设死;
(3)父容器布局选用
多使用RelativeLayout,FrameLayout。GridLayout等,降低布局层次。

当然,在使用
权重时,得採用LinearLayout;
(4) 在xml里,设置高度、宽度採用dp(dip),设置字体採用sp。

(应当指出的,在里面的代码,我们写setHeight(...)单位是px)



更多相关文章

  1. Android(安卓)UI开发第三十篇——使用Fragment构建灵活的桌面
  2. android新开发语言Kotlin的入手Demo
  3. ReactNative与Android中的屏幕适配
  4. CSDN博文精选:Android系列开发博客资源汇总
  5. Android(安卓)RecyclerView Item使用动画被遮挡,ClipChildren也无
  6. 为EditText输入框加上提示信息
  7. Android总结之内部&外部存储分析
  8. Android(安卓)在 res/layout 文件夹 下创建一个 子文件夹实例
  9. 修改Android自带Switch样式

随机推荐

  1. Android(安卓)UI基础——ViewPager+Fragm
  2. android user版本进行编译出现proguard错
  3. 【Android】SerialPortFinder学习笔记,显
  4. Android—React Native编程
  5. Android中Activity之间的数据传递和Inten
  6. 现有Android项目引入ReactNative--九步大
  7. 最全面总结 Android(安卓)WebView与 JS
  8. android 中 EditText使用技巧汇总
  9. Android(安卓)反编译apk 到java源码的方
  10. android Kotlin 继承、派生、接口、构造