新手请教下不同分辨率的问题

djnjc 2012-10-10 10:08:17
背景:我之前做的都是实验性质的程序,只要在我的设备上跑起来就行了,不用考虑界面。现在准备尝试一下做一个能满足大多数屏幕的程序
思路:我看到写layout的时候有一个单位是dp,貌似是根据百分比来定位的,我决定用这个

但是一想安卓的分辨率适配是个很大的难题,不可能用这一个dp来全部解决的,请各位老手说一下 用dp可能带来哪些问题?
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mimitracely 2012-10-10
  • 打赏
  • 举报
回复
layout中,你用dip布局就可以了,一般情况,可以适应不同分辨率的,
djnjc 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

dp和dip都行,它与px的比率是2/3。也就是1.5px = 1dip = 1dp.
正常情况下,用dp或dip就可以满足所有分辨率的适配,但也不排除一些特殊情况。所以,一般情况下做多屏幕适配的话,都是用dip,然后再将一些用Dip还无法解决适配的界面单独写出来。

详细可见此处四楼回复:http://topic.csdn.net/u/20120916/11/7265f38e-d9c7-……
[/Quote]
哦~来了个前辈。
我再问个傻一点的问题,比如我在res文件夹下面新建了个layout-1024x800文件夹,那程序跑起来后是安卓系统会根据屏幕分辨率(1024x800)找到layout-1024x800 (代码里写setContentView(R.layout.main))
还是
我在代码的头要手动获得当前屏幕分辨率,然后setContentView(R.layout-1024x800.main)?
catokat 2012-10-10
  • 打赏
  • 举报
回复
dp和dip都行,它与px的比率是2/3。也就是1.5px = 1dip = 1dp.
正常情况下,用dp或dip就可以满足所有分辨率的适配,但也不排除一些特殊情况。所以,一般情况下做多屏幕适配的话,都是用dip,然后再将一些用Dip还无法解决适配的界面单独写出来。

详细可见此处四楼回复:http://topic.csdn.net/u/20120916/11/7265f38e-d9c7-4264-b078-2bfbaefc3c4a.html
------------------------
简单的问题,不需要深入讨论了。
第一:程序中,绝对不要出现像素为单位,而应该以dip或者dp为单位(1dip = 1.5px)
第二:做好特殊分辨率适配:切图只需要一套,高清的就行,便如按1027*768切的图,则所有比其小的分辨率都可以用啊,就算是比其大一点,也可以用的。实际开发中,一般以480*800来切图。
第三:将不同分辨率的布局文件分开写呀:
layout
layout-1024x800
layout-1280x720
layout-1280x800
layout-320x240
layout-480x320
layout-800x480
layout-960x540
第四:不要被上面的不同分辨率布局文件吓到,其实,只要你遵循了第一条,你会发现绝大多数界面在所有分辨率上都显示正常,你只需要将极少数比较特殊的界面写上上面各分辨率的目录中就OK啦~
djnjc 2012-10-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

java代码中不用你做任何操作。
你只需要在layout中写好xml布局文件就OK了。
举个简单的例子:
你本身有一个layout,然后你又建了layout-480x320和layout-800x480两个目录,并且,你在这三个目录中,都有同一个布局文件main.xml,那么,当你在某个Activity用使用这个main.xml布局文件时,若运行该程序的机器是480X320或者800X48……
[/Quote]
nice
catokat 2012-10-10
  • 打赏
  • 举报
回复
java代码中不用你做任何操作。
你只需要在layout中写好xml布局文件就OK了。
举个简单的例子:
你本身有一个layout,然后你又建了layout-480x320和layout-800x480两个目录,并且,你在这三个目录中,都有同一个布局文件main.xml,那么,当你在某个Activity用使用这个main.xml布局文件时,若运行该程序的机器是480X320或者800X480,程序就会自动调用这两个目录中的main.xml文件,若运行程序的机器不是这两种分辨率,则程序会调用默认的layout中的main.xml。
实际在写程序时,一般只会有一两个xml文件需要单独实现,正常情况下,dp或者dip就能满足要求……

[Quote=引用 2 楼 的回复:]

引用 1 楼 的回复:

dp和dip都行,它与px的比率是2/3。也就是1.5px = 1dip = 1dp.
正常情况下,用dp或dip就可以满足所有分辨率的适配,但也不排除一些特殊情况。所以,一般情况下做多屏幕适配的话,都是用dip,然后再将一些用Dip还无法解决适配的界面单独写出来。

详细可见此处四楼回复:http://topic.csdn.net/u/20120916/1……
[/Quote]
龙泉剑 2012-10-10
  • 打赏
  • 举报
回复
控件的长宽用dp、字体大小用sp
详见:http://blog.csdn.net/chthq/article/details/8047027
另外,要适配不同的机器的话,最好用相对布局。。。

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧