簡體   English   中英

如何根據分辨率更改圖像?

[英]How to change image according resolution?

我正在開發一個android應用程序。 我使用了不同的布局文件夾。 像layout一樣,layout-large,layout-xlarge。 這樣就可以針對所有分辨率進行調整。 但是我在活動中動態設置圖像。 如何根據屏幕分辨率進行更改? 如果更改分辨率,太大的圖像將如何替換較小的圖像?

Android使用密度存儲桶,密度存儲桶的范圍從l(低)dpi到xx(額外)h(高)dpi。

您要在文件夾中創建不同版本的圖像

  • 可繪制ldpi
  • 繪圖分辨率
  • drawable-hdpi
  • drawable-xhdpi
  • 和drawable-xxhdpi(如果要支持Nexus 10)。

這與布局較大的文件夾有點松散,后者使您可以為不同的大小定義不同的布局。

2件截然不同的事情,您可以在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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM