安卓app设计屏幕分辨率适配问题怎么解决
想要Android应用适应不同尺寸的屏幕,思路如下:一:不同的layout Android手机屏幕大小不一,有480x320, 640x360, 800x480,让app适应不同屏幕,需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
二:hdpi、mdpi、ldpi 在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别: (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854) (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480) (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320) 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
更正:应该是对应不同density 的图片 在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
屏幕方向: 横屏竖屏自动切换: 可以在res目录下建立layout-port-800x600和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。
不同分辨率横屏竖屏自动切换: 以800x600为例 :可以在res目录下建立layout-port-800x600和layout-land-800x600两个目录 不切换: 以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把图片贴上来。
还要说明一点:每个activity都有这个属性screenOrientation,每个activity都需要设置,可以设置为竖屏(portrait),也可以设置为无重力感应(nosensor)。
要让程序界面保持一个方向,不随手机方向转动而变化的处理办法: 在AndroidManifest.xml里面配置一下就可以了。
加入这一行android:screenOrientation="landscape"。
例如(landscape是横向,portrait是纵向): Java代码: package="com.ray.linkit" android:versionCode="1" android:versionName="1.0"> android:label="@string/app_name" android:screenOrientation="portrait"> android:screenOrientation="portrait"> android:screenOrientation="portrait"> 另外,android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了! 有的程序适合从竖屏切换到横屏,或者反过来,这个时候怎么办呢?可以在配置Activity的地方进行如下的配置android:screenOrientation="portrait"。
这样就可以保证是竖屏总是竖屏了,或者landscape横向。
而有的程序是适合横竖屏切换的。
如何处理呢?首先要在配置Activity的时候进行如下的配置:android:configChanges="keyboardHidden|orientation",另外需要重写Activity的 onConfigurationChanged方法。
实现方式如下,不需要做太多的内容: @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { // land do nothing is ok } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { // port do nothing is ok } } 写一个支持多分辨的程序,基于1.6开发的,建立了三个资源文件夹drawable-hdpi drawable-mdpi drawable-ldpi,里面分别存放72*72 48*48 36*36的icon图标文件。
当我在G1(1.5的系统)上测试时,图标应该自适应为48*48才对啊,但实际显示的是36*36。
怎么才能让其自适应 48*48的icon图标呢 解决办法 drawable-hdpi drawable-mdpi drawable-ldpi改成drawable-480X320 drawable-800X480的多分辨支持的文件夹
为什么说Android开发屏幕适配很难
展开全部 1. 代码方式 获取屏幕的宽高 然后根据自己的设计图 给控件设置宽高优点:能够适配不同屏幕。
?缺点:代码较多,适合某些特殊需求。
2. 布局方式 ?比如layout-land(横屏时候走这个里面的布局) layout-port(竖屏时候走这里的布局)value-1080-width(名字好像是类似这样忘记了, 这里面可以定义一些 ?按钮的大小,这样屏幕宽度是1080时候就走这里面的参数) hdpi ?xhdpi ?xxhdpi 等放不同分辨率的图片优点: 简单 不用修改代码 ?缺点:资源文件比较大一般都是采用1、 2混合的方式来适配。
...
为什么iphone app要适配手机分辨率,而安卓不需要
1:苹果需要适配分辨率,因为苹果就那几个分辨率,app厂商都是专门针做的。
所有当苹果有新的分辨率规格的时候,就需要重新适配。
2:你说安卓不需要不太准确,安卓也需要适配手机分辨率,但因为安卓分辨率和屏幕大小规格极多,所以安卓的应用一开始就做好针对各种分辨率的优化的。
现在安卓手机测试、适配有真机平台啦。
请问下那个平台比较好呢,...
对于Android开发来说,一般的app在选择呈现方式的时候是会调取这个设备的dpi等级的(具体方法请咨询开发GG)。
因此,为了保证在不同设备上设计的还原度,目前我们至少要考虑自己产品高占比的几个dpi等级,对应不同等级出图和进行还原度测试,以保证在每个设备上的适配良好。
注意事项:在碎片化问题常见的适配场景上最容易出现的问题就是没有考虑到对某个dpi等级的适配。
例如从某一产品的机型占比来说,可能1440p的占比极低,甚至不到5%。
但是考虑到1440p的机型多半是高级机型,用户可能价值更高,遗漏了这一段dpi的适配与测试可能会招致高价值用户的流失,甚至是公司好高层的负面反馈。
-纯情小倩-