1、 //擷取螢幕上每一毫米對應的像素數,此方法有時不太準確,需要手機的標準DPI值 private int getPxOfMM(Context context){ //每1一英寸 == 25.4mm float MMCount = 25.4f; DisplayMetrics dm = context.getResources().getDisplayMetrics();// //取對角線上的像素數 double DiaonalPixels = Math.sqrt(Math.pow(dm.widthPixels, 2)+ Math.pow(dm.heightPixels, 2)); //取對角線的長度(mm) double diagonalLength = DiaonalPixels / dm.densityDpi * MMCount; //得到每一個毫米所對應的像素數 int result = (int) Math.ceil(DiaonalPixels/diagonalLength); return result; }2、擷取android解析度 DisplayMetrics dm = new DisplayMetrics(); WindowManager wm = (WindowManager) this.mContext.getSystemService(Context.WINDOW_SERVICE); wm.getDefaultDisplay().getMetrics(dm); 3、在AndroidMainfest.xml中選擇哪個activity,設定windowSoftInputMode屬性為adjustUnspecified|stateHidden 例如:<activity android:name=".Main" android:label="@string/app_name" android:windowSoftInputMode="adjustUnspecified|stateHidden" android:configChanges="orientation|keyboardHidden"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
4、3、設定AlertDialog 點擊按鈕不消失
try { Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing"); field.setAccessible(true); field.set(dialog, true); //true 為點擊之後消失 ,false 為點擊之後不消失 } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }