请问下,在Android中如何做到屏幕自动适配多种分辨率,在res下建立不同分辨率文件夹这个就免了,太复杂~ 5
我现在已经能获取到手机的分辨率了,请问有没有什么公式一类的获取到当前分辨率后在代码中去布局,做到自动适配?...
我现在已经能获取到手机的分辨率了,请问有没有什么公式一类的获取到当前分辨率后在代码中去布局,做到自动适配?
展开
展开全部
android 不同的密度下对应的像素是不同的,中密度是 1:1的关系,高密度是1:1.5,低密度是1:0.75。如果你的图片默认是放在drawable里,那这是默认中密度下的,如果手机是高密度,就会把图片拉伸1.5倍再显示,这样图片可能会有失真的情况。
系统的图片处理是在不同的密度下做成不同像素的图片。比如:一张图片 低密度下放入一张 36*36 ,中密度下是 48*48, 高密度下是64*64。
如果你只是背景图片填充屏幕,你只要设置fill_parent就可以实现,但是你里面的内容在不同的密度下就会显示大小都不同, 如果里面的内容不管是什么密度下都要按照那个比例来的话(比如最上面是title,中间是内容,下面是底部懒,你想这个在不同的手机下都以1:9:1的比例显示出来),那就可以设置layout_weight ,最外面Linearlayout 里面的每个布局 的width设置为wrap_content,同时设置weight,这个数值要反过来设置,这样就能保证在任何手机上都是以这个比例显示内容。
其实也可以只做一套图 放在中密度 或者高密度下 然后让程序自己去拉伸。
如果需要设置大小,最好是在布局里设置dip,这样就能保证在不同的密度下显示大小一样,如果程序代码里控制,代码里控制的是px, 在不同的密度下就会显示不同,以上是我自己研究的,如果不对请指出,一起讨论
系统的图片处理是在不同的密度下做成不同像素的图片。比如:一张图片 低密度下放入一张 36*36 ,中密度下是 48*48, 高密度下是64*64。
如果你只是背景图片填充屏幕,你只要设置fill_parent就可以实现,但是你里面的内容在不同的密度下就会显示大小都不同, 如果里面的内容不管是什么密度下都要按照那个比例来的话(比如最上面是title,中间是内容,下面是底部懒,你想这个在不同的手机下都以1:9:1的比例显示出来),那就可以设置layout_weight ,最外面Linearlayout 里面的每个布局 的width设置为wrap_content,同时设置weight,这个数值要反过来设置,这样就能保证在任何手机上都是以这个比例显示内容。
其实也可以只做一套图 放在中密度 或者高密度下 然后让程序自己去拉伸。
如果需要设置大小,最好是在布局里设置dip,这样就能保证在不同的密度下显示大小一样,如果程序代码里控制,代码里控制的是px, 在不同的密度下就会显示不同,以上是我自己研究的,如果不对请指出,一起讨论
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询