日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android+4.4.2+横屏,Android 横竖屏和布局问题

發布時間:2023/12/10 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android+4.4.2+横屏,Android 横竖屏和布局问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在這里我做了一個小test,之前看過關于這方面的東西,到后來我才真正的遇到項目的時候,不得已才要去真正的熟悉里面的流程。

這里我貼測試源碼:

TestActivity.java

package cn.com.hrmdemo;

import Android.app.Activity;

import android.content.res.Configuration;

import android.os.Bundle;

import android.widget.Toast;

public class TestActivity extends Activity {

@Override

protected void onCreate(Bundle arg0) {

System.out.println("------ TestActivity onCreate------");

Toast.makeText(this, "onCreate。。。", Toast.LENGTH_SHORT).show();

super.onCreate(arg0);

setContentView(R.layout.test_linearlayout);

}

@Override

protected void onRestoreInstanceState(Bundle savedInstanceState) {

System.out.println("------ TestActivity onRestoreInstanceState------");

Toast.makeText(this, "onRestoreInstanceState。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onRestoreInstanceState(savedInstanceState);

}

@Override

protected void onStart() {

System.out.println("------ TestActivity onStart------");

Toast.makeText(this, "onStart。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onStart();

}

@Override

protected void onRestart() {

System.out.println("------ TestActivity onRestart------");

Toast.makeText(this, "onRestart。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onRestart();

}

@Override

protected void onResume() {

System.out.println("------ TestActivity onResume------");

Toast.makeText(this, "onResume。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onResume();

}

@Override

protected void onSaveInstanceState(Bundle outState) {

System.out.println("------ TestActivity onSaveInstanceState------");

Toast.makeText(this, "onSaveInstanceState。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onSaveInstanceState(outState);

}

@Override

protected void onPause() {

System.out.println("------ TestActivity onPause------");

Toast.makeText(this, "onPause。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onPause();

}

@Override

protected void onStop() {

System.out.println("------ TestActivity onStop------");

Toast.makeText(this, "onStop。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onStop();

}

@Override

protected void onDestroy() {

System.out.println("------ TestActivity onDestroy------");

Toast.makeText(this, "onDestroy。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onDestroy();

}

@Override

public void onConfigurationChanged(Configuration newConfig) {

System.out.println("------ TestActivity onConfigurationChanged------");

Toast.makeText(this, "屏幕轉變了。。。", Toast.LENGTH_SHORT).show();

// TODO Auto-generated method stub

super.onConfigurationChanged(newConfig);

}

}

------------------------------------------------------上面是源碼----------------------------------------------------------

下面看看demo的配置和運行的效果是怎樣

這個橫豎屏的配置主要是在AndroidManiFest.xml,就是Android App 的清單文件:

android:configChanges="想要配置的方式"

>

在你的activity 里面配置你的橫豎屏切換方式

1). 什么都不做配置的情況下

a.正常情況下:

07-24 08:43:59.519: I/System.out(18726): ------ TestActivity onCreate------

07-24 08:43:59.609: I/System.out(18726): ------ TestActivity onStart------

07-24 08:43:59.619: I/System.out(18726): ------ TestActivity onResume------

b.切換橫屏情況下:

07-24 08:51:01.359: I/System.out(18936): ------ TestActivity onPause------

07-24 08:51:01.379: I/System.out(18936): ------ TestActivity onSaveInstanceState------

07-24 08:51:01.389: I/System.out(18936): ------ TestActivity onStop------

07-24 08:51:01.399: I/System.out(18936): ------ TestActivity onDestroy------

07-24 08:51:01.429: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5bb4d000 size:4608000 offset:3072000

07-24 08:51:01.429: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5c8c5000 size:16531456 offset:14995456

07-24 08:51:01.449: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:51:01.579: I/System.out(18936): ------ TestActivity onStart------

07-24 08:51:01.579: I/System.out(18936): ------ TestActivity onRestoreInstanceState------

07-24 08:51:01.599: I/System.out(18936): ------ TestActivity onResume------

c.再切換回豎屏的情況下:

07-24 08:51:42.669: I/System.out(18936): ------ TestActivity onPause------

07-24 08:51:42.689: I/System.out(18936): ------ TestActivity onSaveInstanceState------

07-24 08:51:42.699: I/System.out(18936): ------ TestActivity onStop------

07-24 08:51:42.729: I/System.out(18936): ------ TestActivity onDestroy------

07-24 08:51:42.759: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5c8c5000 size:4608000 offset:3072000

07-24 08:51:42.759: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5cd2a000 size:10797056 offset:9261056

07-24 08:51:42.789: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:51:42.859: I/System.out(18936): ------ TestActivity onStart------

07-24 08:51:42.859: I/System.out(18936): ------ TestActivity onRestoreInstanceState------

07-24 08:51:42.879: I/System.out(18936): ------ TestActivity onResume------

2)配置android:configChanges="orientation|keyboardHidden" (4.0以前)

a.正常情況下:

07-24 08:54:05.059: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:54:05.199: I/System.out(18936): ------ TestActivity onStart------

07-24 08:54:05.219: I/System.out(18936): ------ TestActivity onResume------

b.切換橫屏情況下:

07-24 08:54:25.909: I/System.out(18936): ------ TestActivity onPause------

07-24 08:54:25.919: I/System.out(18936): ------ TestActivity onSaveInstanceState------

07-24 08:54:25.929: I/System.out(18936): ------ TestActivity onStop------

07-24 08:54:25.949: I/System.out(18936): ------ TestActivity onDestroy------

07-24 08:54:25.979: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5c7c5000 size:19603456 offset:18067456

07-24 08:54:25.979: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5da77000 size:4608000 offset:3072000

07-24 08:54:26.019: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:54:26.069: I/System.out(18936): ------ TestActivity onStart------

07-24 08:54:26.079: I/System.out(18936): ------ TestActivity onRestoreInstanceState------

07-24 08:54:26.079: I/System.out(18936): ------ TestActivity onResume------

c.再切換回豎屏的情況下:

07-24 08:55:02.099: I/System.out(18936): ------ TestActivity onPause------

07-24 08:55:02.109: I/System.out(18936): ------ TestActivity onSaveInstanceState------

07-24 08:55:02.119: I/System.out(18936): ------ TestActivity onStop------

07-24 08:55:02.129: I/System.out(18936): ------ TestActivity onDestroy------

07-24 08:55:02.139: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5c7c5000 size:4608000 offset:3072000

07-24 08:55:02.139: D/memalloc(18936): /dev/pmem: Unmapping buffer base:0x5cc30000 size:9216000 offset:7680000

07-24 08:55:02.179: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:55:02.249: I/System.out(18936): ------ TestActivity onStart------

07-24 08:55:02.289: I/System.out(18936): ------ TestActivity onRestoreInstanceState------

07-24 08:55:02.309: I/System.out(18936): ------ TestActivity onResume------

發覺上面的結果是跟網上的朋友說的不是一樣的,原來是有區別的。

到后來去網上搜索了一下資料發覺,到了。4.0以后。要加上這樣的配置才會使Activity的生命周期不會重新被調用

3)配置android:configChanges="keyboardHidden|orientation|screenSize" (4.0以后)

a.正常情況下:

07-24 08:54:05.059: I/System.out(18936): ------ TestActivity onCreate------

07-24 08:54:05.199: I/System.out(18936): ------ TestActivity onStart------

07-24 08:54:05.219: I/System.out(18936): ------ TestActivity onResume------

b.切換橫屏情況下:

07-24 09:08:21.639: I/System.out(19533): ------ TestActivity onConfigurationChanged------

c.再切換回豎屏的情況下:

07-24 09:08:21.639: I/System.out(19533): ------ TestActivity onConfigurationChanged-----

總結:要想Activity在橫豎屏切換的時候不重新加載生命周期的重要方法,一定要加上配置

4.0之前

android:configChanges="orientation|keyboardHidden"

>

4.0之后

android:configChanges="keyboardHidden|orientation|screenSize"

>

------------------------------------------------------常用設置---------------------------------------------------------

1.如果你的app指定要橫屏顯示的話

android:screenOrientation="portrait"

>

2.如果你的app指定要豎屏顯示的話

android:screenOrientation="landscape"

>

64位Ubuntu 11.10下Android開發環境的搭建(JDK+Eclipse+ADT+Android SDK詳細) http://www.linuxidc.com/Linux/2013-06/85303.htm

總結

以上是生活随笔為你收集整理的android+4.4.2+横屏,Android 横竖屏和布局问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。