根據當然的情況,我通常會爲我的應用程序支持的每個密度繪製一個drawable,並且在使用某個drawable的id引用時使用正確的可繪製密度。是否有可能從Android中的特定密度訪問drawable?
但是我正在尋找從特定密度(例如ldpi)訪問drawable,無論設備上運行的密度如何。但是我想要一個特定的情況,而不是在任何地方,這將打敗爲每個密度繪製多個drawable的目的。
這可能嗎?
根據當然的情況,我通常會爲我的應用程序支持的每個密度繪製一個drawable,並且在使用某個drawable的id引用時使用正確的可繪製密度。是否有可能從Android中的特定密度訪問drawable?
但是我正在尋找從特定密度(例如ldpi)訪問drawable,無論設備上運行的密度如何。但是我想要一個特定的情況,而不是在任何地方,這將打敗爲每個密度繪製多個drawable的目的。
這可能嗎?
我不知道這是可能的或不是,但作爲一個簡單的邏輯。
您只需製作一張副本,並將其命名爲mypic2並將其保存在ldpi文件夾中。
現在從您的xml或活動給在您的具體情況新的mypic2的參考。
如果它是一個特定的drawable,那麼只需將它放在ldpi文件夾中即可。如果在任何更合適的密度文件夾中找不到它,運行時將從那裏選取它。
不,它可以從一組預定義的任何繪製(但它的很多可繪製的)和我有一個可用的每個密度可用。我只需要訪問在特定情況下可繪製的特定密度。 –
這是我用來從另一個應用程序加載華電國際繪製(僅適用於Android 4.0的工程)
PackageInfo pi = packages.get(i);
ai = new AppListAdapter.AppItem();
try {
Context otherAppCtx = getApplicationContext().createPackageContext(pi.applicationInfo.packageName, CONTEXT_IGNORE_SECURITY);
ai.Icon = otherAppCtx.getResources().getDrawableForDensity(pi.applicationInfo.icon, DisplayMetrics.DENSITY_HIGH);
} catch (Exception e) {
ai.Icon = pi.applicationInfo.loadIcon(getPackageManager());
}
我需要的drawable已經存在,所以我創建了一個副本並增加了我的應用程序的大小?這正是我想要避免的... –
你好我知道你試圖儘量減少內存使用..但需要做一些更多的學習,.. ..現在我高壓沒有其他解決方案 – MKJParekh
我想這是唯一可能的解決方案,所以我'標記爲接受。如果其他人想出更好的解決方案,我會改變它。 –