对于类似主屏幕的应用程序,我正在尝试收集最高分辨率的应用程序图标.主屏幕会显示更大的图标,因此我需要一个高分辨率图标.
这是我的代码:
final PackageManager pk = getPackageManager();
final String size;
try {
Drawable d = pk.getApplicationIcon("com.mycompany.android.icontest");
size = String.format("Width: %d, height: %d", d.getMinimumWidth(), d.getMinimumHeight());
} catch (PackageManager.NameNotFoundException e) {
return;
}
Run Code Online (Sandbox Code Playgroud)
此代码将图标读入drawable.在该特定包中将存在2个图标,res-hdpi图标和res-xhdpi图标.使用上述方法,只会HDPI读取版本.
如何XHDPI默认阅读该版本?
小智 6
您可以使用getDrawableForDensity()返回与在DPI给定的屏幕密度的特定资源ID相关联的绘制对象:
ActivityInfo info = packageManager.getActivityInfo(componentName, PackageManager.GET_META_DATA);
Resources resources;
try {
resources = mPackageManager.getResourcesForApplication(
info.applicationInfo);
} catch (PackageManager.NameNotFoundException e) {
resources = null;
}
if (resources != null) {
int iconId = info.getIconResource();
if (iconId != 0) {
Drawable d;
try {
d = resources.getDrawableForDensity(iconId, DisplayMetrics.DENSITY_XHIGH);
} catch (Resources.NotFoundException e) {
d = null;
}
return d;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1535 次 |
| 最近记录: |