屏幕适配知识点

屏幕适配: 1024*600的屏幕 宽高纬度
        dpi有240 和 160两种值
        对应的屏幕密度是1.5和1.0
像素密度:DPI
         一个机器,屏幕4寸,分辨率480X800,
         dpi计算: 用勾股定理计算出对角线上的像素数是:932.95,那么dpi就是932.59/4 = 233px/inch

dp:设备无关像素(屏幕密度)

屏幕密度:density
        DPI/(160px/inch) 
        1dp代表的像素数。
        假设dpi是240 像素/英寸 , 那么density就是1.5
        那么就是 dp=1.5px 
修改屏幕dpi值:在system/build.prop中添加ro.sf.lcd_density=160
获取屏幕dpi的方法:
			adb shell getprop ro.sf.lcd_density 
系统通过DPI的值去在Drawable下寻找资源目录
		drawable-hdpi       240
		drawable-ldpi		120
		drawable-mdpi		160
		drawable-xhdpi      320
		drawable-xxhdpi		>320
系统通过sw的值去在layout下寻找资源目录;
layout:
        layout
        layout-sw400dp  计算公式是  sw *160/DPI(sw指的是最小的屏幕宽度,在1024*600中指的是600)   最小宽度是400dp
        				选择一个比这个结果小,而又最接近这个值的dp。
                        sw是最小宽度,这里的最小宽度是指屏幕宽高的较小值,每个屏幕都是固定的,不会随着屏幕横向纵向改变而改变。

        layout-sw600dp    
        ...
        所以1024*600 当DPI是160的时候,
        sw*160/DPI = 600的,系统在layout-sw600dp目录下面去寻找资源值,如果没有就在layout-sw400dp下面在寻找。

values:与layout的查找时一样的。
		values
		values-sw400dp
		values-sw600dp
发布了83 篇原创文章 · 获赞 19 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_38148680/article/details/90638819