Android獲取手機方向
如果使用者開啟了設定裡的螢幕旋轉,Android中處理橫豎屏切換,通常的做法是在AndroidManifest.xml中定義android:configChanges="orientation|keyboardHidden,然後在重寫onOrientationChanged方法,如下:
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"); // 豎屏 }
如果使用者在設定裡禁止了螢幕旋轉,怎麼在應用中獲取手機的方向呢?我們可以用OrientationEventListener(方向事件監聽器),是一個當方向發生變化時,從SensorManager(感測器管理程式)接收通知的輔助類。
用法如下:
@Override protected void onCreate(Bundle savedInstanceState) { mAlbumOrientationEventListener = new AlbumOrientationEventListener(this, SensorManager.SENSOR_DELAY_NORMAL); if (mAlbumOrientationEventListener.canDetectOrientation()) { mAlbumOrientationEventListener.enable(); } else { Log.d("chengcj1", "Can't Detect Orientation"); } } @Override protected void onDestroy() { mAlbumOrientationEventListener.disable(); super.onDestroy(); } private class AlbumOrientationEventListener extends OrientationEventListener { public AlbumOrientationEventListener(Context context) { super(context); } public AlbumOrientationEventListener(Context context, int rate) { super(context, rate); } @Override public void onOrientationChanged(int orientation) { if (orientation == OrientationEventListener.ORIENTATION_UNKNOWN) { return; } //保證只返回四個方向 int newOrientation = ((orientation + 45) / 90 * 90) % 360 if (newOrientation != mOrientation) { mOrientation = newOrientation; //返回的mOrientation就是手機方向,為0°、90°、180°和270°中的一個 } } }
說明:只要手機偏移一點,方向發生變化時,onOrientationChanged會一直執行,但是在實際開發中,我們只關心4個方向(0°,90°,180°,270°),因此用上面的方法轉化一下,轉化原理為:當偏移角度小於45°,都當成0°來處理;大於45°,小於90°,都當成90°來處理;同理,大於90°,小於135°,當成90°來處理;大於135°,小於180°,都當成180°來處理,依此類推......
相關推薦
Android獲取手機方向
如果使用者開啟了設定裡的螢幕旋轉,Android中處理橫豎屏切換,通常的做法是在AndroidManifest.xml中定義android:configChanges="orientation|key
android 獲取手機信息工具類
telephony == 系統 設備 android pack devices 信息 context package com.yqy.yqy_listviewheadview; import android.content.Context; import androi
Android 獲取手機SIM卡運營商
uil track service del 手機 star tor eas on() 直接上代碼: /** * 獲取SIM卡運營商 * * @param context * @return */ public static String ge
android 獲取手機設備品牌
pos 品牌 style article rand 什麽 適配 span 簡單 在有些數據要獲取手機設備是什麽品牌,特別做一些適配的時候,好了就講下怎樣或者手機是什麽品牌: String brand =android.os.Build.BRAND; 就這麽簡
Android 獲取手機的廠商、型號、Android系統版本號、IMEI、當前系統語言等工具類
parameter toc systems star lan gets post version -h 最近在開發中,需要用到一些系統信息,這裏我把這些方法寫成一個工具類方便以後復用,該工具類有以下6個功能: 1、獲取手機制造廠商 2、獲取手機型號 3、獲取手機系統當前使用
Android 獲取手機模擬器sd卡圖片及擷取圖片
需把圖片儲存到找到手機模擬器(夜神模擬器)sd卡中的圖片路徑:檔案管理器/mnt/sdcard/images(images是自己創的資料夾) java程式碼: package com.example.android_07; import android.graphics.Bitmap
android獲取手機型號和手機廠商
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
android獲取手機內部儲存空間和外部儲存空間
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Android獲取手機版本號、品牌等 相關資訊工具類
主要有,獲取手機系統版本,獲取手機品牌、獲取軟體版本資訊、獲取螢幕尺寸寬高(包含和不包含虛擬鍵)以及獲取手機ip地址 public class DeviceUtils { /** * 品牌 */ public static String getDevic
Android獲取手機唯一標識
//獲取手機唯一標識 private String getId() { StringBuilder deviceId = new StringBuilder(); // 渠道標誌 deviceId.append("a");
Android 獲取手機儲存資訊詳解(記憶體,外存等)
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); //系統記憶體資訊 ActivityManager.MemoryInfo memInfo = new ActivityManager
Android 獲取手機的解析度兩種方法
A,過時的API [2]獲取手機的解析度 WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE
android獲取手機型號和系統版本號
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
Android 獲取手機儲存總大小,系統佔用空間
一、Android 儲存介紹及通常查詢大小 手機儲存有兩種,內建記憶體和外接記憶體(SD),目前可擴充套件記憶體的機型正在減少,大部分是內建儲存的手機,內建128G、256G已經很常見,但如果有擴充套件功能的話,買個乞丐版+SD卡也是美滋滋,畢竟廠家增加儲存空間後手機定價也不便宜。言
mono for android 獲取手機照片或拍照並裁剪儲存
using System; using Android.App; using Android.Content; using Android.Widget; using Android.OS; using Android.Graphics; using System.IO; names
Android獲取手機聯絡人匹配使用者表並按字母A-Z排序展示
1、前言 最近在做公司專案的時候遇到一個新增手機聯絡人的需求,主要有以下幾個功能點: 讀取聯絡人:讀取使用者手機上的通訊錄裡的聯絡人列表 好友排序:按照拼音順序對好友進行排序,相容英文數字符號等 字母索引:右側字母導航條,既可拖動也可點選,聯動ListVi
android-獲取手機小區資訊介面設計
1. manifests <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package
Android獲取手機IP地址 WIFI MAC地址
獲取手機IP地址 第一步:新增許可權 <uses-permission android:name="android.permission.INTERNET"/> 第二步:上程式碼 2333 private St
android獲取手機聯絡人並且按字母進行排序
public static ArrayList<LinkManItem> getMobileLinkManList(Context context) { ArrayList<LinkManItem> linkManList = new ArrayList<LinkManIt
Android獲取手機能獲取的資訊(暫時我能想到的)
總結了網上的一些工具類,希望對大家有所幫助,大家可以在評論下方補全更多的獲取方法,更多的幫助大家,謝謝。 package com.mydemo.utils; import android.Manifest; import android.app.ActivityManage