1. 程式人生 > >一分鐘瞭解Android橫豎屏 mdpi hdpi xhdpi xxhdpi xxxhdpi

一分鐘瞭解Android橫豎屏 mdpi hdpi xhdpi xxhdpi xxxhdpi

DPI:每英寸畫素數

簡單的螢幕解析度計算方法:

DisplayMetrics metrics = this.getResources().getDisplayMetrics();
float density = metrics.density;
int dpi = metrics.densityDpi;
int heightPixels = metrics.heightPixels;
int widthPixels = metrics.widthPixels;
Log.e("---metrics---", "比例:"+density+"dpi:"+dpi+"高畫素:"+heightPixels+"寬畫素:"+widthPixels);

dp與px計算圖(mdpi  1dp=1px):

ldpi:1dp=0.75px  mdpi:1dp=1px  hdpi:1dp=1.5px  xhdpi:1dp=2px  xxhdpi:1dp=3px  xxxhdpi:1dp=4px

Android手機螢幕標準                      對應圖示尺寸標準      螢幕密度         比例

xxxhdpi 3840*2160                           192*192             640          16

xxhdpi 1920*1080                            

144*144             480          12

xhdpi  1280*720                            96*96              320           8

hdpi   480*800                             72*72              240           6

mdpi   480*320                             48*48              160           4

ldpi   320*240                             36*36              120           3

注:Android studio mipmap資料夾只存放啟動圖示icon

螢幕橫豎屏佈局切換:

1)單個佈局xml直接橫豎屏切換,不重新載入資料:android:configChanges="orientation|keyboardHidden|screenSize"

2)layout-land和layout-port佈局橫豎屏切換,不重新載入資料:FragmentActivity重寫onRetainCustomNonConfigurationInstance()

Activity 重寫onRetainNonConfigurationInstance()儲存資料,在onCreate()時判斷getLastNonConfigurationInstance()是否null:

Java程式碼  收藏程式碼
  1. @Override  
  2. public void onCreate(Bundle savedInstanceState) {  
  3.     super.onCreate(savedInstanceState);  
  4.     setContentView(R.layout.main);  
  5.     Object data = getLastNonConfigurationInstance();  
  6.     if (data == null) {  
  7.         findviewbyidLoadMyData();  
  8.     }  
  9.     ...  
  10. }  

1.開啟Android 工程包 SDK檔案,tools檔案,雙擊draw9patch.bat

2.彈出的視窗點選 File,點選要編輯的圖片open 9patch 

3.編輯。滑鼠左鍵:劃線     /    shift + 滑鼠左鍵:刪除劃線

4.儲存。點選save 9patch