弄懂Android手机、pad适配的dp与px

背景:设计工程师设计图稿都是以原屏幕分辨率设计,单位也是px。

获取手机屏幕的信息:

DisplayMetrics dm = new DisplayMetrics();  
getWindowManager().getDefaultDisplay().getMetrics(dm);  
int width = dm.widthPixels; // 宽  
int height = dm.heightPixels; // 高  
float density = dm.density; // 屏幕密度(0.75 / 1.0 / 1.5)  
int densityDpi = dm.densityDpi; // 屏幕密度DPI(120 / 160 / 240)

打印以上信息:

例子:

小米pad:屏幕密度:320dp  —— > 1dp=2px,屏幕分辨率:1536*2048 —— >  768dp*1024dp

华为p8:  屏幕密度:480dp  —— > 1dp=3px,屏幕分辨率:1080*1794 —— >  360dp*598dp

三星p600:屏幕密度:320dp  —— > 1dp=2px,屏幕分辨率:1600*2560 —— >  800dp*1280dp

...

最后面的dp*dp就是宽*高的dp值,也就是说,整个屏幕的宽高就是那个dp值。


屏幕适配方式一、

多个dimens文件适配:把不同的dimens文件放进不同的文件夹下,能够保证不同手机,显示的控件是等比的

如果一个控件长60px那么在对应文件夹下得dimens下定义一个dimen值:

values-ldpi 对应120dp屏幕密度的手机 <span style="white-space:pre">	</span>0.75dp<span style="white-space:pre">	</span>80dp
values-mdpi 对应160dp屏幕密度的手机<span style="white-space:pre">	</span>1dp <span style="white-space:pre">	</span>60dp
values-hdpi 对应240dp屏幕密度的手机<span style="white-space:pre">	</span>1.5dp <span style="white-space:pre">	</span>40dp
values-xhdpi 对应320dp屏幕密度的手机<span style="white-space:pre">	</span>2dp <span style="white-space:pre">	</span>30dp
values-xxhdpi 对应480dp屏幕密度的手机<span style="white-space:pre">	</span>3dp <span style="white-space:pre">	</span>20dp


屏幕适配方式二、

代码适配:程序启动后获取屏幕的densityDpi值,对于特殊的控件需要动态设置大小的时候,就可以使用代码适配的方式进行。


public static int px2dip(Context context, float pxValue) {
	final float scale = context.getResources().getDisplayMetrics().density;
	return (int) (pxValue / scale + 0.5f);
}



个人博客版权所有,转载请注明出处。转载自:csdn oLimxing


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android Pad版本开发是为了适配平板电脑的操作系统和硬件特性进行应用程序的开发。相比于手机版本的开发,Android Pad版本开发需要更多地考虑到平板电脑的大屏幕和高分辨率,以及更强大的处理能力。 在Android Pad版本开发中,需要优化布局和界面设计,以充分利用大屏幕的空间和显示效果。通过合理的布局设计,可以提供更好的用户体验,使用户能够更方便地操作和浏览应用程序的内容。 此外,Android Pad版本开发还需要考虑平板电脑的硬件特性,如多点触控和加速度传感器等。利用这些硬件特性,可以为用户提供更多的交互方式,增强应用程序的功能性和娱乐性。 Android Pad版本开发还需要考虑平板电脑的性能和电池寿命。由于平板电脑一般具有更强大的处理能力,可以运行更复杂的应用程序,但同时也需要更多的电池资源。因此,在开发过程中需要优化代码和功能,降低功耗,以延长电池使用时间。 另外,对于应用程序的适配性也需要考虑。不同厂商和型号的平板电脑可能存在屏幕分辨率、硬件规格、操作系统版本等方面的差异,需要进行相应的适配和测试,确保应用程序在不同的平板电脑上都能够正常运行。 综上所述,Android Pad版本开发需要对平板电脑的特性和限制有深入的了解,并进行相应的优化和适配,以提供更好的用户体验和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leefeng.top

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值