根据当然的情况,我通常会为我的应用程序支持的每个密度绘制一个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
我想这是唯一可能的解决方案,所以我'标记为接受。如果其他人想出更好的解决方案,我会改变它。 –