Android不同分辨率适配

本文详细介绍了在Android应用开发中如何适配不同分辨率屏幕,包括使用dp单位、获取屏幕密度、图片资源适配、不同屏幕大小布局创建等关键步骤。通过合理运用这些方法,开发者可以确保应用在各种设备上的良好展示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   

一、相关知识点:   



   1.首先先了解五个东西:dp 、dip、dpi、density 、屏幕大小

dip : Density independent pixels ,设备无关像素。

dp :就是dip

dpi :像素密度 , 直接来说就是一英寸多少个像素点。常见取值 120,160,240

density :  密度。常见取值 1.5 , 1.0 。和标准dpi的比例(160px/inc)

屏幕大小:屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸,5寸×2.54厘米/寸=12.7厘米。


  换算公式:

dp = dpi /(160像素/英寸))   px = density * dp

也就是说dp与屏幕密度有关,所以在对控件的长宽设置时使用dp的话,他显示时会根据设备的屏幕密度计算出px值,实现适配。


  2.Android中获取到dp与density


DisplayMetrics metrics=new DisplayMetrics();    	
    	WindowManager m=(WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE);
    	m.getDefaultDisplay().getMetrics(metrics);
		System.out.println("++++++++++++++++++++++++++"+metrics.density);
		System.out.println("++++++++++++++++++++++++++"+metrics.densityDpi);


除此之外也可以进行dp与px的转换,通过获取到设备的密度density ,利用PX = density * DP

每部安卓手机屏幕都有一个初始的固定密度,这些数值是120、160、240、320、480,我们权且称为“系统密度”。240×320的屏幕是低密度120dpi,即ldpi;320×480的屏幕是中密度160dpi,即 mdpi;480×800的屏幕是高密度240dpi,即hdpi;720×1280的屏幕是超高密度320dpi,即xhdpi;1080×1920的 屏幕是超超高密度480dpi,即xxhdpi。



二、Android不同分辨率屏幕的适配做法小结



 1.尽可能使用dp,字体使用sp。


这里注意的是,textview控件,利用代码创建出来的的时候,setext(float textsize);这个textsize设进去会转换为sp,所以不要转换了。
如果是在代码中设置时,可以通过获取到density后进行dp与px的转换,尽量使用dp。

  2.在drawable 、 drawable-hdpi、 drawable-mdpi 、drawable-xhdpi 、drawable-xxhdoi文件夹下放不同分辨率的图片,系统会自动根据设备屏幕密度加载不同文件夹下面的图片。



  3.对于不同的屏幕大小创建不同的layout。

  a.首先在manifest里面设置要支持的屏幕:

 </application> 

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />
</manifest>

   b.在res文件夹下面创建layout-large 、layout-small 、layout -normal 文件夹,放置对于不同屏幕大小的布局文件,系统的根据设备情况加载相应的布局。


  4.可以创建不同的values文件夹,存放不同尺寸的图片去支持不同屏幕。


   5.对于布局的或者view的大小设置,可以通过获取屏幕的大小然后拿屏幕的比例大小去设置,比例大小可以通过判断屏幕大小的值的动态获取。


   6.一直觉得如果使用屏幕百分比去调整尺寸,将非常好的完成适配问题,起码很大程度上做到了。所以做法是5的做法,后来发现了一个有个开源的百分比布局 。所以现在我做法是,图片只只使用最大尺寸的,那么只保留一份,然后使用百分比布局,按照屏幕的百分百尺寸,基本能绝大多数的需求了





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值