屏幕适配
来源:互联网 发布:知道具体位置的软件 编辑:程序博客网 时间:2024/06/16 15:37
屏幕适配
> 主流屏幕: 1280*720, 遵循原则: 不用AbsoluteLayout(绝对布局), 多用相对布局&线性布局(权重), 要用dp,不用px
>
> 开发后期, 在不同分辨率屏幕上测试(480*800,1920*1080), 如果没出现太大问题(影响正常使用), 就可以上线
>
> 如果后期测出问题怎么办?
>
> 开发后期, 在不同分辨率屏幕上测试(480*800,1920*1080), 如果没出现太大问题(影响正常使用), 就可以上线
>
> 如果后期测出问题怎么办?
- 图片适配
不是很常用
- 布局适配
不是很常用, layout-800x480 专门适配480*800的屏幕
- 尺寸适配
dp和px的关系: dp = px/设备密度
float density = getResources().getDisplayMetrics().density;
System.out.println("设备密度:" + density);
320*240(0.75), 480*320(1),480*800(1.5),1280*720(2)
values->dimens.xml values-1280x720
dp与px转换
<span style="font-size:14px;">public class DensityUtils {/** * dp转px */public static int dp2px(Context ctx, float dp) {float density = ctx.getResources().getDisplayMetrics().density;int px = (int) (dp * density + 0.5f);// 4.9->5 4.4->4return px;}public static float px2dp(Context ctx, int px) {float density = ctx.getResources().getDisplayMetrics().density;float dp = px / density;return dp;}}</span>
使用
1.布局文件中dp系统会根据分辨率转换成px,代码中是px
2.代码中将dp转换成px
<span style="font-size:14px;">LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DensityUtils.dp2px(this, 10), DensityUtils.dp2px(this, 10));if (i > 0) {params.leftMargin = DensityUtils.dp2px(this, 10);// 设置圆点间隔}</span>
- 权重适配
android:weightSum="3"
- 代码适配
获取屏幕宽高,动态计算控件大小
int width = getWindowManager().getDefaultDisplay().getWidth();// 获取屏幕宽度slidingMenu.setBehindOffset(width * 200 / 320);// 设置预留屏幕的宽度
0 0
- 【Android 屏幕适配】 屏幕适配
- Android 屏幕适配--屏幕旋转
- COCOS2DX屏幕显示与屏幕适配
- Android屏幕适配-----屏幕尺寸
- Android屏幕尺寸单位/屏幕适配
- 屏幕适配
- 【Android】屏幕适配
- android屏幕适配
- android屏幕适配
- android 屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android屏幕适配
- Android屏幕适配
- android 屏幕适配
- 屏幕适配
- Android屏幕适配
- Android屏幕适配
- UVa 10878 Decode the tape
- USACO ORZ(DFS+set去重)
- MZY寻宝
- Jquery easyui开启行编辑模式增删改操作
- POJ1316 Self Numbers
- 屏幕适配
- 二叉树m层的第k个节点
- Java--装箱,拆箱
- Java--枚举
- 深入理解Java的接口和抽象类
- 整合Apache+PHP+MySQL
- 75 thinkphp 关联模型
- C#调用RESTful API
- springmvc的数据校验