根据具体情况,我通常对我的app支持的每个密度都有一个drawable,当我使用一些drawable的id引用时,会使用正确的密度drawable。
但无论设备上运行的密度如何,我都希望从特定密度(例如ldpi)访问drawable。但我希望在特定的情况下,而不是在任何地方,这会破坏为每个密度设置多个可绘制的目的。
这可能吗?
答案 0 :(得分:1)
以下是我用来从其他应用加载hdpi drawable的内容(仅适用于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());
}
答案 1 :(得分:0)
我不知道这是否可能,但作为一个简单的逻辑。
您只需制作该ldpi drawable的副本并将其命名为mypic2并将其保存在ldpi文件夹中。
现在,您的xml或activity会根据您的特定情况提供新mypic2的参考。
答案 2 :(得分:-1)
如果它是一个特定的drawable,那么只需将它放在ldpi文件夹中。如果在任何更合适的密度文件夹中找不到它,运行时将从那里拾取它。