导航:首页 > 操作系统 > android适配不同分辨率

android适配不同分辨率

发布时间:2022-04-15 11:26:13

① 初学android,问个问题。怎么样能让android的widget适配不同的分辨率进行布局呢

xml布局中,采用dp做单位,不用px。就可以解决你的问题。

新的sdk为了适配不同的屏幕分辨率的机型,已经陆续取消采用像素px作为布局单位。这主要是针对不同设备而言的。因为px不管在什么样的设备上都是那样长,但是dip会根据设备变化。

这涉及到dp和px的转换问题。
首先,240*320像素的手机(WQVGA/QVGA)的density=120;
320*480的手机(HVGA)的density=160;
480*800的手机(WVGA)density=240;
转换公式如下:
pixs =dips * (density/160)
dips=(pixs*160)/density

补充:
px:单位尺寸里的像素点
dp:一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px

希望对你有帮助。

② 阐述Android开发中的几种不同分辩率,图片不同分辨率是怎么自动适配

wrap_content是包裹住内容,所以你的内容区有多大图片就会显示多大区域,如果你的内容区域没有填充满窗口图片肯定是无法全屏的。

③ 怎么算设置多少 dp 才能让 Android 适应不同分辨率

Android中一个layout想适配各种屏幕尺寸那么需要按以下规则去写layout:
1.
尽量使用wrap_content、match_parent、weight
来规定layout的大小。
2.
要确保布局的灵活性并适应各种尺寸的屏幕,应使用
“wrap_content”

“match_parent”
控制某些视图组件的宽度和高度。
3.
使用
“wrap_content”,系统就会将视图的宽度或高度设置成所需的最小尺寸以适应视图中的内容,而
“match_parent”(在低于
API
级别
8
的级别中称为“fill_parent”)则会展开组件以匹配其父视图的尺寸。
4.
如果使用
“wrap_content”

“match_parent”
尺寸值而不是硬编码的尺寸,视图就会相应地仅使用自身所需的空间或展开以填满可用空间。此方法可让布局正确适应各种屏幕尺寸和屏幕方向。
5.
如果某些地方必须要规定控件的大小,那么要使用dp
或者
dip单位。
6.
字段必须使用
sp单位。
7.
将不同的图片放到不同的drawable目录下,分辨率的匹配规则如下:
drawable-mdpi
320
*
480
drawable-hdpi
480*800
drawable-xhdpi
720
*
1280
drawable-xxhdpi
1080
*
1920
drawable-xxxhdpi
1080+

④ 如何让Android自适应不同分辨率或不同屏幕大小的layout布局

一:不同的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 的图片
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
[i]备注:三者的分辨率不一样,就像你把电脑的分辨率调低,图片会变大一样,反之分辨率高,图片缩小。 [/i]
屏幕方向:
横屏竖屏自动切换:
可以在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代码:
<?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的多分辨支持的文件夹

⑤ android 游戏是怎么适配分辨率的

液晶显示器下面有一个auto按键,就是自动调整,按一下,应该就能解决了!或者把游戏的分辨率调整成适合屏幕比例的!

⑥ android开发,html5页面怎么适配不同手机分辨率

按照比较普遍的最低分辨率写 其他的 两边留空白呗

⑦ 安卓app设计屏幕分辨率适配问题怎么解决

要解决这个问题,就要先知道屏幕适配的原理

不同分辨率对应的文件夹

首先我们知道android工程目录res下有四个文件夹,drawable-hdpi、drawable-mdpi、drawable-ldpi、drawable-xhdpi,主要是为了支持多分辨率的图片。如果你制作的游戏切图是480x800的切图,就应该放到drawable-hdpi目录下,如果是320x480的切图,就应该放到mdpi目录下。如果是720x1280的,通常会放到xhdpi目录下。

图片缺省时的处理方式

安卓系统在加载图片的时候有一套严格的规则,它会事先判断手机屏幕的分辨率,然后根据分辨率去加载对应文件夹里的图片。如果找不到,则会从drawable或者其他drawable-*文件夹中寻找。找到图片以后,系统会对图片尺寸与手机屏幕进行比对,尺寸一致则会正常显示,而遇到尺寸不一致的那么系统会根据一定规律对图片尺寸进行缩放,然后显示在屏幕上。此时,由于图片尺寸经过缩放,所以屏幕上的显示效果会受到影响,因此通常在游戏测试阶段,测试者应该准备好不同尺寸搭配不同分辨率的设备进行多次校验,如果是在上线前希望能进行大规模的手机游戏兼容性测试的话则可以尝试使用诸如:TestBird这样的第三方手游自动化测试平台。

不同比例的屏幕常见适配方式

通常成熟的游戏厂商针对不同比例以及不同分辨率的屏幕,会有一套自有的解决方案。而对于中小规模的开发团队或者个人开发者而言,往往没有时间专门对不同尺寸的屏幕进行适配,比如常见的安卓设备屏幕比例为16:9,而像魅族的屏幕比例则为15:9,IPad则为4:3,这样的情况下屏幕适配就变得异常麻烦。常见的图片缩放在这样的情况下会造成屏幕边缘内容的丢失,通常最好的办法是尽可能把图片缩放到最大,保留部分没有显示的黑边区域,而这样的的好处是可以不丢失任何内容,但缺点是黑边区域实际会影响到玩家的使用体验。最早在IPad尚未普及时,为了保证游戏尽可能多的兼容IPad,因此大量的采用了这样的适配方案。

另外值得一提的是,如果制作手游切图的话母版可以尽可能用720P,因为目前主流机型的屏幕分辨率是720P,720P在对图片进行缩放的过程中放大到1080P时不会感到特别模糊,缩小到480P时也不会看不清内容。这是目前很常用的一个屏幕适配解决方案,但由于15年1080p将会开始普及,所以笔者认为很快情况就会有所变化了。

⑧ Android界面布局怎么样适应不同分辨率的手机

各种Android操作系统的手机简直就是琳琅满目,屏幕分辨率的差异可想而知。目前比较主流的有WVGA=800x480,HVGA=480x320,另外的还有QVGA=320x240。当然还有魅族M9的DVGA=960x640,还有蛋疼的摩托罗拉的FWVGA=854x480。

其实,在你layout的xml文件中,编写的时候是不是用了许多的padding呢?如果是,那你就蛋疼了。因为这样的布局永远是无法适应所有手机屏幕的。

正确的做法应该是使用的是weight属性。将你控件的layout中的width、height设置为fill-parent,不要使用wrap——content。因为wrap-content的大小是不固定的。而weight(权重)这个属性很好的解决了这个问题。

当包裹在控件外面的Layout的width、height属性都设置为fill-parent时,可以利用weight的反比特性。即如果控件A设置weight为5,控件B设置weight为7,那么A所占的空间为5/(5+7),B所占的空间为7/(5+7)。这样的反比属性对任何分辨率下的手机都是合适的。

当然,字体就不行了。那怎么保证字体能够跟布局一样能够自适应呢?
呵呵,很简单,就是在你的res文件夹中创建一个文件夹,叫做values-320x240。其中320x240是你手机屏幕的分辨率,根据你手机屏幕的情况做不同的命名,例如values-800x480。在该文件夹下创建一个dimens.xml文件,定义各种字体的大小。那么系统就会自动根据你手机屏幕的分辨率去调用响应的文件夹。

另外,值得提醒的是,记得在你默认的values文件下的dimens.xml文件中也要写上相应的字体大小哦,因为当系统无法认识你手机屏幕大小的时候,它会自动去找你默认文件中的

东西,没有写的话程序会崩溃。

************************************************************分割线************************************************************

在看下面内容之前首先请看你SDK文档中以下这篇文章

其实google在分辨率适应性的东西已经写的很清楚了,只是我们很多人没去看而已

以下是结论:
屏幕分辨率:1024x600
density:1(160)
文件夹:values-mdpi-1024x600

屏幕分辨率:1024x600
density:1.5(240)
文件夹:values-hdpi-683x400 由1024/1.5 600/1.5得到,需要四舍五入。

屏幕分辨率:800x480
density:1(160)
文件夹:values-mdpi-800x480

屏幕分辨率:800x480
density:1.5(240)
文件夹:values-hdpi-533x320 由800/1.5 480/1.5得到,需要四舍五入。

以此类推
一般情况下需要创建出values 、values-mdpi 、 values-hdpi文件夹,以备在一些没有规定的尺寸屏幕上找不到资源的情况。

然后在里面使用不同的dimens文件,Layout中不要使用显示的数字,所有的尺寸定义全都援引dimens里面的内容。

这样能够保证深度UI定制的情况

另外在工程的default.properties中如果split.density=false,则分辨率适配的时候文件夹命名不需要与scale相除


屏幕分辨率:800x480
density:1.5(240)
文件夹:values-hdpi-800x480

************************************************************分割线************************************************************

关于dimens

位置:res\values
单位:px Pixel 以画面的像素为单位;
in Inches以画面的多少英寸为单位;
mm Millimeter以画面的多少毫米为单位;
pt Points 一点为1/72英寸;
dp或dip Density-indepentdent 为160dpi屏幕的一个pixel;
ap Scale-independent Pixels 随屏幕尺寸改变的一个pixel;

1.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)

系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

在2.1之前的版本可以通过drawable-800x480, drawable-480x320 等方式实现。

2:layout:放置对应不同分辨率的布局

创建不同的layout文件夹, layout-800x480,layout-480x320, 系统会根据屏幕的大小自己选择合适的layout进行使用。

另外:可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件。

下面列出主流的android机型有:

240x320低端,国产入门级采用,例如HTC G4,G8
320x480中端,大部分基于此分辨率,例如HTC G1,G2,G3,G6, MOTO ME600, SAMSUNG I7500
480x800中高端,大部分基于此分辨率,例如HTC G5,G7, MOTO MT810
480x854MOTO特有的,例如Droid, Milestone, XT800
960x640, 魅族M9

阅读全文

与android适配不同分辨率相关的资料

热点内容
php志愿者网站源码 浏览:870
贸易pdf 浏览:495
dbug命令 浏览:351
开逛app如何加好友 浏览:958
ftpdos命令下载文件 浏览:75
华为如何打开语音服务器 浏览:242
python中的idle 浏览:1000
五轴联动数控编程 浏览:965
换一台电脑如何远程云服务器 浏览:132
阿里云怎么买云服务器 浏览:664
java提取文字 浏览:97
阿里云服务器同人账号问题 浏览:420
5分钟解压轴题 浏览:341
安卓桌面二级文件夹 浏览:188
eps文档加密 浏览:261
手机怎么做pdf 浏览:162
ug曲面pdf 浏览:279
液化气还是压缩气 浏览:950
阿里云公共ntp服务器地址 浏览:991
金字塔学习机编程 浏览:684