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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

解决Android手机 屏幕横竖屏切换

發(fā)布時(shí)間:2025/3/14 Android 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决Android手机 屏幕横竖屏切换 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Android中當(dāng)屏幕橫豎屏切換時(shí),Activity的生命周期是重新加載(說(shuō)明當(dāng)前的Activity給銷(xiāo)毀了,但又重新執(zhí)行加載),怎么使屏幕橫豎屏切換時(shí),當(dāng)前的Activity不銷(xiāo)毀呢?

1. 在AndroidManifest.xml中為Activity設(shè)置configChanges屬性,

application android:icon="@drawable/icon"?android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label
="@string/app_name"?android:configChanges="orientation|keyboardHidden|screenSize">
<intent-filter>
<action android:name="android.intent.action.MAIN"?/>
<category android:name="android.intent.category.LAUNCHER"?/>
</intent-filter>
</activity>
</application>

configChanges有如下選項(xiàng):? 1. orientation?:屏幕在縱向和橫向間旋轉(zhuǎn),??2. keyboardHidden:鍵盤(pán)顯示或隱藏?,3.fontScale:用戶變更了首選的字體大小???4.locale?: 用戶選擇了不同的語(yǔ)言設(shè)定,5.? keyboard?:鍵盤(pán)類型變更,例如手機(jī)從12鍵盤(pán)切換到全鍵盤(pán)???6. touchscreen或navigation:鍵盤(pán)或?qū)Ш椒绞阶兓?#xff0c;

如果缺少了keyboardHidden選項(xiàng) 不能防止Activity的銷(xiāo)毀,并且在之后提到的onConfigurationChanged事件中 只能捕獲豎屏變橫屏的事件 不能捕獲橫屏變豎屏
2. 在對(duì)應(yīng)的Activity中重寫(xiě):onConfigurationChanged 方法:

?

publicclass MainActivity extends Activity {private TextView textView;@Overridepublicvoid onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Log.i("--Main--", "onCreate");textView=(TextView)findViewById(R.id.tv_id);}@Overridepublicvoid onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);Log.i("--Main--", "onConfigurationChanged");if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){textView.setText("當(dāng)前屏幕為橫屏");}else{textView.setText("當(dāng)前屏幕為豎屏");}}}

?

?

?

布局文件就是一個(gè)簡(jiǎn)單的TextView此處不給出,

效果如下:
????????????????????????????

日志打印:

從日志中可以分析出屏幕橫豎屏切換時(shí)Activity并沒(méi)有銷(xiāo)毀,當(dāng)然你也可以運(yùn)行項(xiàng)目在onCreate方法打個(gè)斷點(diǎn),執(zhí)行發(fā)現(xiàn)onCreate方法只是在剛開(kāi)始進(jìn)入時(shí)執(zhí)行,屏幕橫豎屏切換時(shí),已經(jīng)不會(huì)在執(zhí)行,因此可在onConfigurationChanged方法中下點(diǎn)文章!

注:如果項(xiàng)目不需要屏幕切換時(shí)可以設(shè)置為

1. android:screenOrientation="portrait" 始終以豎屏顯示?
2. android:screenOrientation="landscape" 始終以橫屏顯示

上面的配置文件設(shè)置屏幕橫豎屏,下面是代碼去控制屏幕橫豎屏的:

private OnClickListener onClick=new OnClickListener() {@Overridepublicvoid onClick(View v) {//設(shè)置屏幕為橫屏if(v==butLandscrpe){MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//設(shè)置為置屏幕為豎屏 }else{MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}}};//監(jiān)聽(tīng)系統(tǒng)設(shè)置的更改 @Overridepublicvoid onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);String message=newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE ?"屏幕設(shè)置為:橫屏" : "屏幕設(shè)置為:豎屏";showToast(message);}

  

?各位朋友可以去試試,有什么意見(jiàn)或建議歡迎留言,謝謝!

原文地址:

http://www.cnblogs.com/zhangkai281/archive/2011/07/06/2099277.html

?

轉(zhuǎn)載于:https://www.cnblogs.com/sunylat/p/6119083.html

總結(jié)

以上是生活随笔為你收集整理的解决Android手机 屏幕横竖屏切换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。