【发布时间】:2018-03-22 20:41:17
【问题描述】:
我试图通过遍历每个包并执行以下操作,将设备上包的所有图标保存为 BMP 或 PNG 文件。
Drawable icon = getPackageManager().getApplicationIcon(packageInfo);
Bitmap bitmap = Bitmap.createBitmap(icon.getIntrinsicWidth(), icon.getIntrinsicHeight(), Config.ARGB_8888);
try {
out = new FileOutputStream("/storage/sdcard0/images/" + packageInfo.packageName +".png");
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
} finally {
try{
out.close();
} catch(Throwable ignore) {}
}
虽然这是创建空白图像,但我将如何更改代码以创建图像格式的实际图标?
【问题讨论】:
-
“但我只希望图标作为图像在设备屏幕上的显示方式”——这是什么意思?
-
也许我对 Android 术语中的“图标”的含义感到困惑,但我希望并假设它是代表应用程序的图像,即单击以启动应用程序的图像。
-
那又是为了什么?在您的某些应用程序中重复使用它们?除了
out = new FileOutputStream("/storage/sdcard0/images/" + packageInfo.packageName +".bmp");包含一个绝对路径,据说并不是在每个设备上都可以找到。然后扩展名是 bmp (在 Android 上可笑)。然后你做bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);,所以保存为带有BMP扩展名的PNG格式并尝试以未压缩格式压缩(PNG和BMP未压缩)......我认为这是一团糟。 -
Android 中没有启动应用程序的图标,只是因为您没有在 Android 中启动应用程序。您在应用程序中启动 activity。一个应用程序可能有零个、一个或多个旨在以这种方式启动的活动。
-
@FrankN.Stein 我现在这样做只是为了测试目的,这不是它的实际实现方式。我只是想看看能不能得到每个android包的Drawable图标的图片文件。
标签: android bitmap icons packages