2013-03-12 67 views
0

我正在開發一個android應用程序。我使用了不同的佈局文件夾。像佈局一樣,layout-large,layout-xlarge。以便它可以適應所有分辨率。但我在活動中動態設置圖像。我如何根據屏幕分辨率更改它們?如果我們改變分辨率,多大的圖像會取代較小的圖像?如何根據分辨率更改圖像?

回答

1

Android可以使用密度桶,從l(低)dpi到xx(額外的額外)h(高)dpi。

您想創建不同的版本在文件夾中的圖片作爲

  • 繪製,LDPI
  • 繪製,MDPI
  • 繪製,華電國際
  • 繪製-xhdpi
  • 和繪製,xxhdpi如果你想支持Nexus 10.

這對於佈局大的文件夾來說有點鬆散,這使您可以爲不同的尺寸定義不同的佈局。

2個很不同的東西,你可以閱讀更多關於 screen practices in Android

======= 編輯;似乎這不完全是問題。

如果你正在做'正確的方式',Android系統會爲你選擇正確的圖像,即使動態添加它們(你仍然可以從Java代碼中調用R.drawable.my_image)。如果由於某種原因你不得不選擇,你可以簡單地使用類似的東西(有點過時)來檢查當前的密度。

public String getDensity() { 
    String density; 
    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    // will either be DENSITY_LOW (120) , DENSITY_MEDIUM (160) or 
    // DENSITY_HIGH (240) 
    switch (dm.densityDpi) { 
    case 120: 
     density = "ldpi"; 
     break; 
    case 160: 
     density = "mdpi"; 
     break; 
    case 240: 
     density = "hdpi"; 
     break; 
    // use hdpi as default, because flurry shows this will be suited for 
    // most of our users. 
    default: 
     density = "hdpi"; 
     break; 
    } 
    return density; 
} 
+0

我在問,如何根據屏幕分辨率動態地替換圖像。如果我使用屏幕尺寸480 * 800。那麼圖像應該被biger取代。 – user2147892 2013-03-12 09:13:05