- 浏览: 233257 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (153)
- jsp (5)
- java (14)
- javascript (15)
- mysql (0)
- sqlserver (11)
- oracle (1)
- tomcat (1)
- 系统 (0)
- 软件 (2)
- j2ee (0)
- j2me (2)
- html (14)
- 综合 (7)
- 字符串 (3)
- linux (1)
- 框架 (1)
- lwuit (2)
- android (21)
- php (11)
- xml (2)
- 算法 (1)
- io流 (3)
- JFreeChart (3)
- iphone (5)
- wap (1)
- Objective-C (13)
- jQuery (7)
- 程序员的乐趣 (2)
- spring (1)
- jQuery Mobile (3)
- phoneGap (1)
最新评论
-
fd_zhaoshuo:
...
java 用IO流修改文件的指定位置 -
fd_zhaoshuo:
...
java 用IO流修改文件的指定位置 -
shgaoyuhai:
请问一下,如果dbf文件里有删除标示的语句是隐藏的,直接执行s ...
java通过jdbc-odbc访问dbf数据源 -
leonidax:
貌似不行哦
Android.Could not find *.apk -
ielad:
okokokok
Android中的Activity
Android横竖屏要解决的问题应该就两个:一。布局问题;二。重新载入问题。
1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:
"unspecified"
默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.
"landscape"
横屏显示(宽比高要长)
"portrait"
竖屏显示(高比宽要长)
"user"
用户当前首选的方向
"behind"
和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
"sensor"
有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。
"nosensor"
忽略物理感应器,这样就不会随着用户旋转设备而更改了 ( "unspecified"设置除外 )。
也可以在Java代码中通过 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);来设置。
如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。可以通过以下方法来切换布局:
1)在res目录下建立layout-land和layout-port目录,相应的layout文件不变,比如main.xml。layout- land是横屏的layout,layout-port是竖屏的layout,其他的不用管,模拟器会自动寻找。
2)通过this.getResources().getConfiguration().orientation来判断当前是横屏还是竖屏然后来加载相应的xml布局文件。因为当屏幕变为横屏的时候,系统会重新呼叫当前Activity的OnCreate方法,你可以把以下方法放在你的 OnCreate中来检查当前的方向,然后可以让你的SetContentView来载入不同的Layout xml.
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
Log.i("info", "landscape");
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
Log.i("info", "portrait");
}
2.重新载入问题。如果不需要从新载入,可以在androidmanifest.xml中加入配置 android:configChanges="orientation",配置android:configChanges的作用就是如文档所说的:Specify one or more configuration changes that the activity will handle itself. If not specified, the activity will be restarted if any of these configuration changes happen in the system。这样在程序中. Activity就不会重复的调用onCreate()甚至不会调用onPause.onResume.只会调用一个 onConfigurationChanged(Configuration newConfig)。
–*************其实在这里我遇到两个奇怪的问题,那就是
1.如果我在android:configChanges中只设置orientation,他依然会重新加载,只有设置了 orientation|keyboardHidden它才会只调用一个onConfigurationChanged(Configuration newConfig)
2.当横屏变竖屏的时候,他会调用两次onConfigurationChanged,而竖屏转横屏时他只调用一次 onConfigurationChanged,真是太奇怪了。如果你知道,欢迎留言共同探讨*************–
如果需要重新载入,则不需要做任何修改。不过如果需要在重新载入过程中保存之前的操作内容或数据,则需要保存之前的数据。然后在activity的 onCreate()中取出来。当然,如此就不能设置android:configChanges()了,否则就不会调用onCreate()方法。那么数据可以保存在哪呢?Android中四种存储方法都可以,另外,还可以用Android为我们提供了 onRetainNonConfigurationInstance()方法来暂时保存数据。
下面为此举个例子:
保存临时图片:
- @Override
- public Object onRetainNonConfigurationInstance() {
- final LoadedPhoto[] list = new LoadedPhoto[numberOfPhotos];
- keepPhotos(list);
- return list;
- }
之后便可以在activity的onCreate()函数中实现重新调用临时文件,在代码中需要判断系统是否需要重新加载临时文件。以下是放在 OnCreate()函数中加载临时文件的代码:
- private void loadPhotos() {
- final Object data = getLastNonConfigurationInstance();
- // The activity is starting for the first time, load the photos from Flickr
- if (data == null) {
- mTask = new GetPhotoListTask().execute(mCurrentPage);
- } else {
- // The activity was destroyed/created automatically, populate the grid
- // of photos with the images loaded by the previous activity
- final LoadedPhoto[] photos = (LoadedPhoto[]) data;
- for (LoadedPhoto photo : photos) {
- addPhoto(photo);
- }
- }
- }
对于大多数的情况并不需要做如上的操作,所以需要谨慎使用这个行文,毕竟最好的行为也并不适用于所有情况,如果应用的不好反而会给程序带来不必要的麻烦。
如果要彻底禁止翻转,可以设置android:screenOrientation的属性为nosensor,如此就可以忽略重力感应带来的麻烦了。不过不知道为什么,在模拟器上不管用,听别人说在真机上是正确的,我没有真机,等有了真机再试试看
发表评论
-
Spinner 下拉列表
2011-01-13 13:43 1095spinner就相当于Html中的下拉列表框,在下面的例子里我 ... -
AutoCompleteTextView 自动完成文本框
2011-01-13 13:40 1306AutoCompleteTextView和EditText一样 ... -
DatePicker 日期选择控件 DatePickerDialog 日期选择对话框
2011-01-13 13:35 26591、main.xml的代码: < ?xml ... -
Android.Could not find *.apk
2011-01-06 13:47 2272这个问题主要是由于Eclipse中没有设定JRE路 ... -
Android中ListView中Item的设置
2010-12-20 17:36 1362写一个XML用于显示ListView list1.xml ... -
Android ArrayAdapter的使用
2010-12-20 17:33 1533写一个XML用于显示ListView list1.xml ... -
Android中的多媒体的应用
2010-10-27 15:55 8741.Android对常用的媒体格式提供了支持,支持的图片格式有 ... -
Android中图形图像
2010-10-27 15:40 853一.Android系统中的图形处理分为两个类,一个类是静态图形 ... -
Android中数据存取
2010-10-26 17:42 1277一.Android作为一种手机 ... -
Android中互联网的应用
2010-10-26 14:50 748一.具体的网络编程方式: 1.针对TCP/IP的Soc ... -
Android中Content Provide
2010-10-26 11:08 2495一.Conent Provider用来保存和检索数据,并且使应 ... -
Android 广播事件处理Broadcast Receiver
2010-10-25 17:52 1678一.Broadcast Receive为广播接收器,它和事件处 ... -
Android Service组件
2010-10-25 17:06 10581.service是Android四大组件之一,是运行在后台的 ... -
Android中Intent
2010-10-20 19:40 1605一.Intent的中文意思是“意图,意向”,不同组件组件之间的 ... -
Android中的Activity
2010-10-19 16:36 1574一.Android系统由Activity,Service,Br ... -
Android的用户界面
2010-10-19 15:48 1024一.Android中所有的UI都是建立在View和ViewGr ... -
Android中资源的访问
2010-10-18 15:24 1083一.图片,音频,动画和字符串等叫做android中的资源文件。 ... -
Android开发环境的搭建
2010-10-15 09:13 712下载Android SDK,在先安装------下载安装jdk ... -
Android和Java ME的区别与联系
2010-10-14 11:44 1485一.区别: 1.Android是一个完整的移动设备操作系统 ... -
Android的历史
2010-10-14 11:31 8641.Google 1998年9月7号创立,全球互联网巨头。 2 ...
相关推荐
在Android应用开发中,横竖屏适配是一个重要的环节,尤其在用户交互丰富的应用中更为关键。Android Studio作为官方推荐的集成开发环境,提供了便捷的方式来处理这个问题。本篇将详细介绍如何在Android Studio中通过...
下面将详细介绍如何实现Android手机的强制横竖屏功能。 一、Android布局管理 在Android开发中,布局文件(XML)定义了用户界面的结构和组件。通过在布局文件中使用`android:screenOrientation`属性,可以设置...
在"Android zxing完美横改竖屏.txt"文档中,可能包含了以下步骤来实现横改竖: 1. **分析源码**:首先,你需要对ZXing的3.2.0源码进行分析,找出与屏幕方向相关的代码。主要关注`CameraPreview`类和`...
通过上述步骤,我们成功地将AndroidX86从默认的横屏显示模式改为竖屏显示模式。这一改变对于开发者来说尤为有用,因为它可以帮助他们在进行应用程序测试和调试时获得更佳的视觉体验。此外,对于那些想要在电脑上使用...
在Android应用中,屏幕的方向可以是横屏或竖屏。为了确保应用在不同屏幕方向下也能正常工作,可以通过以下方式实现: 1. **创建不同的布局文件夹**: - 在`res`目录下创建`layout-port-800x600`用于竖屏布局。 - ...
针对"android竖屏切换横屏"这一主题,我们主要探讨如何在基于MediaTek (MTK) 平台的手机上实现屏幕方向的切换,将默认的竖屏显示转变为横屏模式。 首先,Android系统提供了两种主要的屏幕方向:Portrait(竖屏)和...
本实例主要探讨如何在Android应用中实现在横屏和竖屏之间的自由切换,以及如何检测屏幕方向的变化。 首先,Android系统提供了两种基本的屏幕方向:横屏(Landscape)和竖屏(Portrait)。默认情况下,Android应用会...
本篇将深入探讨“Android横竖屏”相关的知识点,以及如何处理屏幕旋转带来的影响。 一、Android屏幕方向 1. 屏幕方向检测:Android系统提供了`Display`类来获取设备的显示信息,包括当前的屏幕方向。可以通过`...
2. 系统自动旋转:大多数设备允许用户自由旋转屏幕,根据设备的物理位置自动切换横竖屏。 3. 程序锁定:开发者可以通过代码控制应用仅支持特定的方向,如始终竖屏或始终横屏,或者在特定页面中切换方向。 二、uni-...
ZXing(Zebra Crossing)是Google开发的一个开源...通过合理地集成和配置,开发者可以快速地在自己的应用中加入这一实用功能,而横竖屏的支持则让用户体验更加友好。结合ZXingDemo,学习和实践会变得更加直观和高效。
本篇将详细解析标题和描述中提到的"android二维码扫描竖屏,横屏"的相关知识点,包括竖屏简化版和横屏Google源码的应用。 1. **二维码扫描原理** 二维码扫描主要依赖于二维码解码库,例如ZXing(Zebra Crossing)库...
在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一下就可以了。 在AndroidManifest.xml的activity(需要禁止转向的activity)配置中加入...
在Android 4.4(KitKat,简称KK)版本中,系统为用户提供了一种优化的体验,包括针对不同屏幕方向(横屏和竖屏)的定制电池图标。这个问题涉及到Android的UI设计、资源管理和屏幕适配。 首先,我们来看"android4.4 ...
以下是对这个“android 摄像头、视频录制demo (竖屏)”的详细解释: 1. **摄像头预览布局**: - 在Android中,摄像头预览通常通过`SurfaceView`或`TextureView`来实现。在这个示例中,重点在于如何让预览画面保持...
在Android平台上,开发一款支持二维码扫描的应用时,通常会遇到横屏和竖屏两种设备方向的问题。本主题主要探讨如何在Android应用中处理这两种屏幕方向,确保二维码扫描功能的正常运行。 首先,Android系统允许应用...
### JS 判断iPad、Android等移动设备横竖屏的知识点 #### 一、概述 本文将详细介绍如何通过JavaScript(简称JS)来判断iPad、Android等移动设备当前处于横屏还是竖屏状态。此方法适用于Web应用开发场景下,对用户...
为横竖屏提供不同的布局资源,可以在res/layout目录下创建子目录,如res/layout-land(横屏)和res/layout-port(竖屏),然后将对应的布局文件放入相应目录。系统会根据当前屏幕方向自动选择合适的布局。 六、注意...
通常,Android设备的默认相机预览模式是横屏,但我们的需求是竖屏模式。因此,我们需要在`CameraManager`中调整相机的参数,确保预览画面适应竖屏显示。 `CameraManager.java`中的关键部分在于设置相机的参数。这...
在Android开发中,判断横竖屏是一个常见的需求,主要涉及到两个核心问题:布局适配和状态管理。本文将详细介绍这两个方面,帮助开发者更好地处理横竖屏切换。 **一、布局问题** 在Android应用中,布局文件通常位于...
在Android开发中,手机横竖屏的切换是一个常见的需求,涉及到屏幕方向的处理以及相应的布局适配。这个“Android项目 手机横竖屏.rar”压缩包可能包含了一个示例项目,用于展示如何在Android应用中处理屏幕方向的变化...