Android 屏幕适配(values、drawable适配)

    • 一 value适配
      • 1 SW说明
        • 1.1 说明
        • 1.2 计算方式
      • 2 Plugin ScreenMatch
        • 2.1 使用
        • 2.2 配置文件```screenMatch.properties```
    • 二 drawable适配
      • 1 新建drawable目录
    • 三 工具
      • 1 自动生成dimens
        • 1.1 不带参数
        • 1.2 带参数
      • 2 获取屏幕参数apk
      • 3 获取屏幕参数,生成drawable
    • 四 适配完成目录结构
    • 五 Github

一 value适配

1 SW说明

1.1 说明

Google解释:可用屏幕区域的最小尺寸

可用屏幕区域包括导航栏的高度/宽度。(dm.widthPixels():获取的高度不包括导航栏)

1.2 计算方式

比如联想的TB3-X70F:分辨率:1920x1200,density:1.5,dpi:240-hdpi

计算公式:sw=1200/1.5=800

市场主流手机设备sw:360

2 Plugin ScreenMatch

作者说明

2.1 使用

首选项目必须使用dimens.xml,任意文件上右击->ScreenMatch->选择module即可

  1. 项目必须有dimens.xml文件。
  2. ScreenMatch只会适配dimens.xml目录下的尺寸,不想适配的尺寸可以放到别的文件下。
  3. 尺寸向下兼容,比如:sw601dp如果没有适配,会使用sw600dp。

2.2 配置文件screenMatch.properties

screenMatch.properties文件在settings.gradle同级目录下

  1. base_dp:适配的基准,以UI设计图对应的设备为准。定制平板设备为:800dp。
  2. match_dp:需要适配的尺寸。
  3. ignore_dp:不需要适配的尺寸。

二 drawable适配

有些设备dpi较小,物理尺寸较大,比如联想TB3-X70F,DPI为hdpi,正常情况下使drawab-hdpi目录下的icon,但是物理尺寸过大,icon显示较小,就需要使用drawab-xdpi的icon,这时肯定不能将drawab-xdpi的icon放到drawab-hdpi目录下。

1 新建drawable目录

比如联想TB3-X70F,可以新建一个drawable-hdpi-1920x1128

三 工具

1 自动生成dimens

1.1 不带参数

java -jar Dimens.jar

默认参数:DP_FROM:-2560.0f,DP_TO:2560.0f,DP_STEP_SIZE=0.5f;
SP_FROM = 9f,SP_TO = 30f,SP_STEP_SIZE = 1f

1.2 带参数

java -jar Dimens.jar -100.0 100 0.5 9.0 30.0 1.0

1:DP_FROM,2:DP_TO,3:DP_STEP_SIZE;
4:SP_FROM,5:SP_TO,6:SP_STEP_SIZE(不需要修改的参数可以传非数字:例如"-")

2 获取屏幕参数apk

3 获取屏幕参数,生成drawable

必须配置adb命令,且连接设备。adb devices能获取设备信息才可以使用!

python pixel.py

四 适配完成目录结构

五 Github

Github

更多相关文章

  1. 关于Android中Java与Javascript之间的传值研究
  2. Android(安卓)Density(密度)
  3. android 调用 webservice
  4. android AlarmManager闹钟设置多次只响应一次和响应多次以及传参
  5. Android(安卓)jni初探
  6. Android(安卓)使用SQLiteDatabase操作SQLite数据库
  7. 【Android】ListView RecyclerView
  8. 基于Android小说阅读器滑动效果的一种实现
  9. Android(安卓)ContentProvider query参数

随机推荐

  1. ANDROID相对布局详细说明
  2. Android用户界面 UI组件--TextView及其子
  3. Android(安卓)Studio如何显示行号
  4. Android中如何用好多线程
  5. Android消息处理机制(Handler)
  6. Android_RelativeLayout属性
  7. 【摘录】从Android界面开发谈起
  8. 让Ubuntu和Android同时运行(Ubuntu on And
  9. 《Android》Lesson17-用Fragment实现简易
  10. 每周总结20130821——android控件的尺寸