因此,我使用了800x480顯示屏的HTC智能手機。我一直認爲這是HDPI設備。我確保使用以下代碼:顯示密度和資源使用情況(ldpi/mdpi/hdpi/xhdpi)
Display display = activity.getWindowManager().getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
displayDensity = displayMetrics.densityDpi;
它說我的設備是240dpi。但通過實驗我發現android只會將我的設備威脅爲MDPI。我相信這個。我測試了與另一個800x480(ZTE)相同的結果,結果是一樣的 - 它在displayDensity中顯示爲240,但是Android將其作爲MDPI設備威脅它......但爲什麼會如此呢?在android.devepoler上他們說240dpi是HDPI。我完全困惑。爲什麼heck 240被認爲是MDPI?
我怎麼會發現Android的對待我的HTC爲MDPI設備: 總之我做了什麼,以確保 - 我把一個大的圖像繪製,華電國際(AOS猜測會使用它)和較小的一方可繪製-mdpi並且運行了一個應用程序來查看它會使用哪個。它總是使用drawable-mdpi而不是drawable-hdpi。要知道如何在我的設備上顯示圖像,我運行了以前將圖像放置到項目的可繪製文件夾的應用程序。然而,就像我上面提到的那樣,我猜測我的800x480 HTC是HDPI,由於基於displayDensity的代碼而不是配置。配置說我的設備是Configuration.SCREENLAYOUT_SIZE_NORMAL,看起來這就是爲什麼AOS把我的設備當作MDPI的唯一原因。因此,與240dpi的DisplayDensity(必須是HDPI而不是MDPI)結合使用會非常令人沮喪。所以現在的問題是爲什麼顯示密度爲240dpi配置將設備設置爲MDPI類型?這是什麼原因?我在想,檢測設備類型的唯一方法就是顯示密度。如果它是240dpi,它必須是HDPI設備而不是MDPI。
你是如何確定它被視爲mdpi設備的? – Shade 2013-04-05 15:15:59
「但通過實驗我發現android僅將我的設備威脅爲MDPI。」 - 請編輯您的問題,以完全和準確地解釋**你如何測試這個。更重要的是,當你檢查'配置''密度'值 - 這是用來確定正在加載的資源 - 你學到了什麼? – CommonsWare 2013-04-05 15:16:52