一:不同的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是纵向):
显示代码打印
01 <?xml version="1.0" encoding="utf-8"?>
02 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
03 package="com.ray.linkit"
04 android:versionCode="1"
05 android:versionName="1.0">
06 <application android:icon="@drawable/icon" android:label="@string/app_name">
07 <activity android:name=".Main"
08 android:label="@string/app_name"
09 android:screenOrientation="portrait">
10 <intent-filter>
11 <action android:name="android.intent.action.MAIN" />
12 <category android:name="android.intent.category.LAUNCHER" />
13 </intent-filter>
14 </activity>
15 <activity android:name=".GamePlay"
16 android:screenOrientation="portrait"></activity>
17 <activity android:name=".OptionView"
18 android:screenOrientation="portrait"></activity>
19 </application>
20 <uses-sdk android:minSdkVersion="3" />
21 </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
}
分享到:
相关推荐
查看设备信息:ADB提供了命令来查看设备的信息,包括设备型号、Android版本、屏幕分辨率等。 截屏和录屏:您可以使用ADB命令捕获Android设备的屏幕截图,也可以录制屏幕活动。 导出和导入数据库:ADB允许您从设备...
Android板实现双屏显示,DisplayManager和Display的使用,无须引入其他框架。只需调用原生谷歌类即可
如何适配多分辨率的Android设备? 如何在Android中构建HTML5应用程序? 如何在Android中调试HTML5应用程序? 如何在Android中使用HTML5的本地储存? 如何在Android中使用HTML5的本地数据库? 如何在Android中使用...
–这一切看起来似乎很正常的样子,但是在android studio的布局文件的布局情况只能与模拟器运行效果、真机界面运行效果这两种效果中的一个相匹配。说白了布局文件在模拟器上运行出满意的效果,但运行到真机界面上的...
开发者可以在Basic4android环境下利用Android模拟器或Android物理设备(利用USB连接或通过本地网络连接)进行程序开发和调试。 Basic4android带有丰富的库函数,支持所有的Android 核心特性,因而使其非常容易进行...
目前的3.2和4.0都不支持以太网,无法进行android开发. 使用此2.3版本,可以上网,使用adb连接DDMS,在eclipse上进行android程序的调试. 使用时请参考android x86修改分辨率相关的教程.
目前的3.2和4.0都不支持以太网,无法进行android开发. 使用此2.3版本,可以上网,使用adb连接DDMS,在eclipse上进行android程序的调试. 使用时请参考android x86修改分辨率相关的教程.
如何适配多分辨率的Android设备? 如何在Android中构建HTML5应用程序? 如何在Android中调试HTML5应用程序? 如何在Android中使用HTML5的本地储存? 如何在Android中使用HTML5的本地数据库? 如何在Android中使用...
Android下MTK平台驱动FT6336U电容触摸屏参考代码资料,已调试OK,只支持单点触摸,多用在手环 手表等小显示应用上,这种一般用的是Cortex-M0系列的芯片。可以直接参考里面的代码。
如何适配多分辨率的Android设备? 如何在Android中构建HTML5应用程序? 如何在Android中调试HTML5应用程序? 如何在Android中使用HTML5的本地储存? 如何在Android中使用HTML5的本地数据库? 如何在Android中使用...
显示Android设备的基本信息,如CPU,硬件信息,分辨率,Android版本,内核,USB调试是否开启,未知来源应用程序安装是否开启。
MTK平台camera(摄像头)调试教程。
Android Studio提供了一套完整的工具集,包括代码编辑器、编译器、调试器、模拟器等,让开发者能够在一个统一的界面内完成应用的开发、测试和调试。 智能代码编辑: Android Studio拥有强大的代码编辑功能,包括...
Basic4Android是Android...5.可视化编辑器支持多屏幕和各种分辨率 6.支持Android 1.6及其以上版本的所有移动设备 7.支持自动完成、内置文档、内部索引和其它高级功能 8.强大的单步调试功能 9.支持所有的Android核心特性
用户界面可以针对任何屏幕分辨率和屏幕方向进行定制。 Android为用户与移动应用程序交互提供了全新的方式,同时也提供了实现这些交互的底层技术保障。而Android最令人心动之处,莫过于你可以为它编写软件,本书...
2.3 运行和调试android应用程序 2.3.1 连接设备 2.3.2 创建一个android虚拟设备 2.3.3 运行应用程序 2.3.4 调试应用程序 2.3.5 logcat和ddms 2.3.6 使用adb 2.4 小结 第3章 游戏开发基础 3.1 游戏...
2. Sate4412 开发平台硬件参数 核心板 CPU Samsung Exynos 4412,四核 Cortex-A9,主频为1.4~1.6GHz。支持1MByte L2 cache,封装为0.4mm间距FCFBGA-804。 支持双通道LPDDR2 (1066...MobileQQ_Android_2.0 Android QQ
一个让网页自适应屏幕分辨率的工具 Page only using fixed like the number of width 320 to make, and others such as iPhone 6 and plus can be adaptive. 在页面开发的时候只需按照最大宽度是320px(iphone4、5)...
UVC摄像头多路画面预览、录像、拍照、切换分辨率、调整亮度对比度等功能实现,已亲测调试多款摄像头