如何让app适应不同分辨率(转)
本帖最后由 songshichao 于 2011-8-12 22:34 编辑
如何让app适应不同分辨率(转)
这篇文章是我们安卓巴士的管理员回答一个朋友的问题时贴出来的,我转过来,给大家看看,学习学习,看的多了,想的多了,自然就懂的多了。
给你找的一篇不知道有没有用:http://www.apkbus.com/forum.php?mod=viewthread&tid=4469&extra=page%3D1
1、不同的layout
Android手机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下创建不同的layout文件夹,比如:layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。2、hdpi、mdpi、ldpi前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
屏幕方向
1、横屏竖屏自动切换可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。
2、禁用自动切换
只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。
Android:screenOrientation="landscape" //是限制此页面横屏显示
Android:screenOrientation="portrait" //是限制此页面数竖屏显示
字体自适应大小
方法1:
首先根据不同分辨率获取不同字体大小。
在RES里创建
values-480x320/strings.xml 里面设置<dimen name="Text_size">30px</dimen>
和 values-800x400/strings.xml 里面设置<dimen name="Text_size">30px</dimen>
分别代表480X320 和 800X400分辨率情况下字号为30px和40px;
在java文件中这样调用
int sizeOfText = (int) this.getResources().getDimension(R.dimen.Text_size);
方法2:
在视图的 onsizechanged里获取视图宽度,一般情况下默认宽度是320,所以计算一个缩放比率rate = (float) w/320 w是实际宽度
然后在设置字体尺寸时 paint.setTextSize((int)(8*rate)); 8是在分辨率宽为320 下需要设置的字体大小实际字体大小 = 默认字体大小 x rate
转自http://apkbus.com/archiver/?tid-10459.html
分享到:
相关推荐
这是一款可以自动生成各个屏幕分辨率.xml文件的工具,内含demo和注释,教你怎么应用,非常好用,欢迎star!
Android分辨率屏含义及大小
android分辨率完美适应
android分辨率自动适配源码和apk包
当您的Android应用即将发布的时候,如果你想让更多的用户去使用你的应用,摆在工程师面前的一个重要问题就是如何让你的应用能在各种各样的终端上运行,这里的各种各样首当其冲的就是不同的屏幕分辨率和尺寸。
这是一款可以自动生成各个屏幕分辨率.xml文件的工具的源码库,非常好用,欢迎star!
分辨率
android4.x系统占比69.2%,已经成为绝对主流。其中4.1占比最高,为36.5%。今年七月这两项数据分别是61.2%、32.3%。 2)android2.3仍占有28.5%,但下降趋势明显(今年七月的数据为34.1%)。
以前在公司做项目的时候,遇到了分辨率的适配问题,说起来当时挺纠结的,因为没有外网,所以这个问题,都是黑暗中摸索的,尝试了许多方法,最后和... import android.view.View; /** * 存储View信息的JavaBean类 * *
获取屏幕分辨率,用了一个很简单的案列,希望你们能好好学习。
android多分辨率适配 ,判断平板还是手机,等比例缩小图片.rar
小Demo 里面有关于自己手机的屏幕分辨率,包含虚拟按键的,方便手机进行屏幕适配
如今的智能手机用户对应用软件的舒适...但是由于Android的开源性,硬件厂商屏幕分辨率 不统一,据统计目前市场上Android系统手机的分辨率有10余种,分辨率分布如此广泛使得开发者在处理多分辨率适应方面遇到了不少难题
测试不同手机实际分辨率的小demo附源码
Android多分辨率适配,统一以px为单位,按照屏幕大小进行缩放适配。
Android自适应分辨率,让程序自动适应屏幕大小
android方面关于分辨率问题进行了说明,不懂的开发或设计师可以通过这份文档了解到具体的处理。
玩转Android多分辨率规格的界面设计