安卓app设计屏幕分辨率适配问题怎么解决?
发布网友
发布时间:2022-04-25 06:11
我来回答
共1个回答
热心网友
时间:2022-06-29 20:15
想要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里面配置一下就可以了。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ray.linkit"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".GamePlay"
android:screenOrientation="portrait"></activity>
<activity android:name=".OptionView"
android:screenOrientation="portrait"></activity>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
另外,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的多分辨支持的文件夹。
安卓app设计屏幕分辨率适配问题怎么解决?
屏幕方向: 横屏竖屏自动切换: 可以在res目录下建立layout-port-800x600和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。不同分辨率横屏竖屏自动切换: 以800x600为例 :可以在res目...
安卓app设计屏幕分辨率适配问题怎么解决
常见的图片缩放在这样的情况下会造成屏幕边缘内容的丢失,通常最好的办法是尽可能把图片缩放到最大,保留部分没有显示的黑边区域,而这样的的好处是可以不丢失任何内容,但缺点是黑边区域实际会影响到玩家的使用体验。最早在IPad尚未普及时,为了保证游戏尽可能多的兼容IPad,因此大量的采用了这样的适配方案...
app与屏幕大小不匹配怎么说
app与屏幕大小不匹配,应该是软件APP兼容性没弄好。作为APP开发者,APP兼容性是必须的。兼容不同Feature,兼容不同语言、兼容不同屏幕尺寸、兼容不同分辨率,兼容不同SDK版本等。如果是软件的兼容性问题,那没有办法改变。但如果是手机问题的话,可以在后台设置中改变参数。Android设计用于运行在许多不同类...
安卓app平面设计要做哪些分辨率能适配所有机型?
1.首先明确产品要面向的设备,尽量缩小适配范围,这将要付出的工作至关重要。2.在所支持的分辨率范围排出优先级。3.结合上面定义的工作范围,根据安卓设备开发规范制作相应的mdpi,hdpi等等分辨率的资源。需要注意的是标准的手机屏幕比例是16:9,所以,如果不是较特殊的情况,制作效果图应该考虑从以下几种...
安卓app平面设计要做哪些分辨率能适配所有机型?
就图片这方面讲,一般来说,适配分辨率最高的就可以了,其他分辨率,系统会自动根据屏幕大小对图片进行压缩。不过,这么做的前提是不过分考虑特殊比例屏幕。不建议对各种分辨率分别出一套图,这样会导致app过大,而且制作成本也高。对于设计师,针对Android这种手机,应该尽量把资源图片设计成可以拉伸的.9图,...
Android 屏幕分辨率适配
根据分辨率比例算出1794x1080的dimen值 这样子,A、B设备加载资源的时候使用对应分辨率限定符下的px,如果找不到再找默认值,可以在一定程度上解决屏幕宽高碎片化适配问题。 但是这样子的限定比较严格,需要测试各种分辨率,后来Android又推出了"smallest-width"简称最小宽度限制。 A设备宽320dp B设备宽411dp 假设设计师切...
APP UI设计考虑到不同的手机屏幕大小不一样 会出现问题 应该怎么...
根据平台不同,解决问题的方法也不同。主要分为IOS和Android,IOS要提供2倍分辨率的文件,因为iPhone4和5显示屏。Android用点九的方法来解决。
手机分辨率怎么调手机分辨率怎么设置
1、安卓手机屏幕分辨率调整方法:首先手机必须获得ROOT权限,接着你需要确定手机的显示density和分辨率,desity的意思就是密度,在安卓系统中,desity是一个非常重要的显示参数。2、如果density设置不当,比如density设置过高,可能会使字体和其他一些UI显示得很小,而如果高分屏设置density过低,也可能会使字体...
Android应用的UI设计图要做多大分辨率
Android应用的UI设计图要做的分辨率为:1920*1080;一般来说安卓常见的分辨率为:320*480;480*800;540*960;720*1280;1920*1080;但对于UI设计来说,尽可能保持设计的分辨率达到技术开发的标准,一般都以720*1280或1920*1080为主,但为了避免技术协调的冲突,则以1920*1080为主,不会出现大的错误。
...尺寸设计的,现在要适配iphone 6 plus该怎么适配?
加上Android生态中纷繁复杂的各种奇葩尺寸,现在APP设计开发必须考虑适配大、中、小三种屏幕。所以如何做到交付一套设计稿解决适配大中小三屏的问题?设计和开发之间采用什么协作模式?一个基本思路是:1、选择一种尺寸作为设计和开发基准;2、定义一套适配规则,自动适配剩下两种尺寸;3、特殊适配效果给出...