2013-03-25 88 views
2

我遇到了一個令人驚訝的問題,在我的應用程序中。android在清單中的任何密度

當我把anyDensity標記錯誤的清單我的應用程序運行良好,但每當我使它成真我的應用程序行爲模糊,我在我的應用程序創建一些位圖。 任何有問題,如果我anyDensity在清單中標記false然後許多設備將無法看到我的應用程序在Playstore, 任何幫助將不勝感激。

<supports-screens 
    android:anyDensity="false" 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" /> 

回答

4

但是,在原始文章中沒有太多信息。該文檔指出:

指示應用程序是否包含資源以適應任何屏幕密度 。對於支持Android 1.6(API 4級)及更高版本的應用程序,默認情況下爲「true」,除非您完全確定您的應用程序需要 才能工作,否則不應將其設置爲「假」( )。它可能需要 禁用唯一的一次是,如果你的應用程序直接操縱位圖

所以我的第一個問題是你是否包括所有的資源,以適應任何屏幕像素密度(即MDPI,華電國際,xhdpi,xxhdpi)?如果是的話,你應該沒問題。在上述報價的最後一句之後,我到達link

它說:通過設置 inScaled爲「假」 anyDensity 爲「假」,在清單或編程爲一個位圖:

應用程序可以禁用預縮放設置機器人。

您是否試圖以編程方式爲您的位圖執行此操作,而不是爲整個應用程序全局禁用此標誌?

最後還有this部分。也許這將有助於你正確處理你的自定義位圖?具體而言,本段聽起來像您的問題:

如果您的應用程序創建的內存中的位圖(Bitmap對象),則 系統假定該位圖被設計用於基線 中等密度屏幕上,通過缺省,並在繪製 時自動縮放位圖。當位圖 具有未指定的密度屬性時,系統將「自動縮放」應用於位圖。如果您沒有正確考慮當前設備的屏幕密度並指定位圖的密度 屬性,那麼自動縮放會導致縮放僞像與您不提供替代資源時相同的 。