簡體   English   中英

適用於Samsung Galaxy S4和Nexus 10的Android可繪制

[英]Android drawable for Samsung Galaxy S4 and Nexus 10

我的圖片是我的應用中一項活動的背景。

對於Samsung Galaxy S4,此圖像應為1920x1080,並放置在xxhdpi文件夾中。 對於Nexus 10,此圖片應為2560x1600,並放在xhdpi文件夾中。

在xhpdi文件夾中放置比在xxhdpi文件夾中放置的圖像更大的圖像是沒有意義的。 並且因為那我相信我誤解了。

有人可以解釋我的誤解嗎?

- 編輯 -

對於所有詢問是否nexus10確實是xhdpi和S4 xxhdpi的答案:

prijupaul的答案很好,但我沒有要測試的Nexus 10或Galaxy S4。 我發現了嘗試為兩者創建AVD的解決方案,在設備配置創建過程中,它說明了它將是哪種配置。

資源類“ hdpi”,“ xhdpi”和“ xxhdpi”與分辨率(以像素為單位的寬度和高度)無關,而與密度(每英寸屏幕的像素數)有關。

S4的分辨率較低,但由於屏幕較小,因此可以具有較高的密度。

我認為文檔(developer.android.com)中對此進行了很好的解釋。 檢查以獲取更多詳細信息。

如果分辨率確實很重要,則應使用xhdpi以外的其他限定符。 您可以使用例如drawable-sw720dp(目標為10“平板電腦)。

不過我個人的觀點是,您應該只為每個長寬比提供一個最大尺寸的版本。 然后在運行時計算該縱橫比,並從資產中選擇最佳圖像。

S4不是xhdpi嗎? 您是否使用過驗證

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int density = dm.densityDpi;
switch(density)
{
 case DisplayMetrics.DENSITY_LOW:
  Toast.makeText(context, "ldpi", Toast.LENGTH_SHORT).show();
  break;
 case DisplayMetrics.DENSITY_MEDIUM:
  Toast.makeText(context, "mdpi", Toast.LENGTH_SHORT).show();
  break;
 case DisplayMetrics.DENSITY_HIGH:
  Toast.makeText(context, "hdpi", Toast.LENGTH_SHORT).show();
  break;
 case DisplayMetrics.DENSITY_XHIGH:
  Toast.makeText(context, "xhdpi", Toast.LENGTH_SHORT).show();
  break;
 case DisplayMetrics.DENSITY_XXHIGH:
  Toast.makeText(context, "xxhdpi", Toast.LENGTH_SHORT).show();
  break;
}

這不能回答問題。 但是,再次進行仔細檢查可能會很有用。

我認為這將是“ PPI ”。 Galaxy s4為441 ppi,而Nexus 10為300 ppi。

您確定nexus10的圖片應該在xhdpi文件夾中嗎?Nexus10的分辨率為300ppi,這與浸漬不同。 訪問Android XXHDPI資源

應該是這樣,s4:xhdpi nexus10:xxhdpi

暫無
暫無

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

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