屏幕适配

屏幕适配

> 主流屏幕: 1280*720, 遵循原则: 不用AbsoluteLayout(绝对布局), 多用相对布局&线性布局(权重), 要用dp,不用px

> 开发后期, 在不同分辨率屏幕上测试(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->4

		return 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);// 设置预留屏幕的宽度


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值