在开发大屏幕的广告机时,发现原先设计的代码在广告机上显示出现适配问题。。网上查询到的解决方法。。
尺寸适配
在res下创建对应分辨率的values,如values-1280x720,values-1920x1080
然后在下面创建lay_x.xml和lay_y.xml两个文件,这两个文件是什么呢,就是在该分辨率下,
将Y方向,屏幕等分为1280份,
将X方向,屏幕等分为800份,
valuse-1280x720
lay_y.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="y1">1.0px</dimen>
<dimen name="y2">2.0px</dimen>
<dimen name="y3">3.0px</dimen>
<dimen name="y4">4.0px</dimen>
<dimen name="y5">5.0px</dimen>
<dimen name="y6">6.0px</dimen>
<dimen name="y7">7.0px</dimen>
.....
<dimen name="y1276">1276.0px</dimen>
<dimen name="y1277">1277.0px</dimen>
<dimen name="y1278">1278.0px</dimen>
<dimen name="y1279">1279.0px</dimen>
<dimen name="y1280">1280px</dimen>
</resources>
lay_x.xml
<?xml version="1.0" encoding="utf-8"?>
<resources><dimen name="x1">0.9px</dimen>
<dimen name="x2">1.8px</dimen>
<dimen name="x3">2.69px</dimen>
<dimen name="x4">3.6px</dimen>
<dimen name="x5">4.5px</dimen>
<dimen name="x6">5.39px</dimen>
<dimen name="x7">6.3px</dimen>
<dimen name="x8">7.2px</dimen>
<dimen name="x9">8.09px</dimen>
......
<dimen name="x796">716.4px</dimen>
<dimen name="x797">717.3px</dimen>
<dimen name="x798">718.19px</dimen>
<dimen name="x799">719.1px</dimen>
<dimen name="x800">720px</dimen>
</resources>
然后在布局文件中使用上面命名的数据。
<LinearLayout
android:layout_width="@dimen/y120"
android:layout_height="@dimen/y120"
android:layout_marginBottom="@dimen/y28"
android:layout_marginLeft="@dimen/x38"
android:layout_marginTop="@dimen/y28"
android:padding="@dimen/y20"
android:background="@drawable/shape_iv_bg_stroke"
android:gravity="center">
以下地址中包含大多数适配尺寸,和生成上面文件的java.class 工具类
下载地址
字体大小适配
在刚创建的各个文件中,添加一个如下的文件夹。。。
dimen.xml
注:这个是1920x1080文件夹下,文字对应的尺寸。。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="comm_tv_9">27px</dimen>
<dimen name="comm_tv_10">30px</dimen>
<dimen name="comm_tv_11">33px</dimen>
<dimen name="comm_tv_12">36px</dimen>
<dimen name="comm_tv_13">39px</dimen>
<dimen name="comm_tv_14">42px</dimen>
<dimen name="comm_tv_15">45px</dimen>
<dimen name="comm_tv_20">60px</dimen>
<dimen name="comm_tv_23">69px</dimen>
<dimen name="comm_tv_30">90px</dimen>
<dimen name="comm_tv_32">96px</dimen>
<dimen name="comm_tv_33">99px</dimen>
</resources>
然后在TextView中使用,testSize="@dimen/com_tv_9"
这样就做到了字体适配。
参考文章
鸿洋 Android 屏幕适配方案