一:不同的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)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
三:横屏竖屏
以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把图片贴上来。
还要说明一点:每个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
}
}
- 大小: 14.9 KB
分享到:
相关推荐
Android开发中的drawable-(hdpi,mdpi,ldpi)和WVGA,HVGA,QVGA的区别以及联系
Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读.doc
可以将mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi的图标自动生成mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi的图标 是个网站 没有侵权 亲测可用
Android应用图标大小自适应,多屏幕支持
这是github上的一个开源免费工具...3.下方勾选不同分辨率 点击右侧make即可 链接:https://pan.baidu.com/s/1HV3OM6SBHZU1t0X05afuXQ 提取码:895h 如果被和谐底下留言 如果有用,记得留个赞,谢谢 作者:资料弹跳版
还可以识别 ldpi、mdpi、hdpi、xhdpi、xxhdpi 和 xxxhdpi 显示。 探测: ldpi(低)~120dpi mdpi(中)~160dpi hdpi(高)~240dpi xhdpi(超高)~320dpi xxhdpi(超高)~480dpi xxxhdpi(超超超高)~640dpi ...
安卓app手机屏幕适配技巧.zip 让android app适合不同尺寸的屏幕 分辨率mdpi、hdpi 、xhdpi、xxhdpi 4条黄金法则 9-patch PNG
Android 屏幕适配篇工程师 李洪江理解ldpi,mdpi,hdpi,xhdpi,xxhdpi 1 跟屏幕密度有关系,跟屏幕分辨率没关系。如果没有,会找其他
SVG -> drawable-xhdpi、drawable-hdpi、drawable-mdpi、drawable-ldpi Android SVG 资源生成器 未来证明您的资产并节省时间! 创建/查找一次,不用担心 DPI 存储桶。 此工具允许您将 SVG 文件用于您的 Android ...
适应不同的分辨率 drawable-hdpi、drawable-mdpi 、drawable-ldpi. drawable-xhdpi .drawable-large drawable-small drawable-xlarge
PhotoshopToAndroidExporter 此脚本允许以Android格式(xxhdpi,xhdpi,hdpi,mdpi)导出当前的Photoshop CC文档。 为了使用此脚本: 将其拖到Photoshop CC的scripts文件夹中。 (仅第一次) 重新启动Photoshop CC。...
这是一个用于从 SVG 文件创建 LDPI、MDPI、HDPI 和 XHDPI 格式的 PNG 文件的工具。 这对于为 Android 应用程序快速创建可绘制对象非常有用。
"ldpi", "mdpi", "hdpi", "xhdpi","xxhdpi", "xxxhdpi" 比如我的美工人员设计了一个图片适合 xhdpi 分辨率的手机,我可以通过AndroidDrawable将这个xhdpi转换成 "ldpi", "mdpi", "hdpi", "xhdpi","xxhdpi", ...
在android开发的过程中我们经常因为没有好的美工图片失真,这样使界面看起来要逊色很多,有的时候可能我们会想在drawable-hdpi,ldpi,mdpi下放不同分辨率的图片,这样虽然可以有效避免图片失真,但是这样一是麻烦而是...
AndroidResizer 一个java桌面应用程序,用于调整android开发的图片大小,即ldpi,mdpi,hdpi,xhdpi,xxhdpi 从dist文件夹下载ANDRE.jar文件并双击。 在所有操作系统上运行。
drawable-hdpi.zip图片资源
一般情况下的普通屏幕:ldpi是120dpi,mdpi是160dpi,hdpi是240dpi,xhdpi是320dpi 对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚 1.4密度无关的像素(Density-independent pixel——dip) dip是...
可以将mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi的图标自动生成mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi的图标
用于在有一套图片的情况下生成其他dpi下的图片的工具,例如demo中是有xxhdpi的图片,自动生成xhdpi,hdpi,mdpi中的图片,当然也可以根据自己需求修改代码得到符合要求的apk。