我有一个带有列表视图屏幕的应用程序。在此列表视图中,我正在每行中显示不同的应用程序,其图像和名称(使用arraylist)。连续点击某个应用程序后,它将启动该特定应用程序。现在,当有任何应用程序更新时,我想在应用程序图像上显示徽章。能做到吗?
我将图像存储为位图。有什么方法可以将徽章添加到位图(不是资源,而是从Web URL获取),或者以任何方式在带有arraylist的listview中显示徽章。
最佳答案
尝试这个。您可能需要根据图像尺寸修改尺寸选项。我将其用于128x128图像。
public static Bitmap getOverlayedImage(Resources res, Drawable img1, Drawable img2) {
float den = res.getDisplayMetrics().density;
int dip = (int) (80 * den + 0.5f);
int sz = (int) (128 * den + 0.5f);
Drawable[] layers = new Drawable[2];
layers[0] = img1;
layers[1] = img2;
LayerDrawable layerDrawable = new LayerDrawable(layers);
layerDrawable.setLayerInset(1, dip, dip, 0, 00);
Bitmap b = Bitmap.createBitmap(sz, sz, Bitmap.Config.ARGB_8888);
layerDrawable.setBounds(0, 0, sz, sz);
layerDrawable.draw(new Canvas(b));
return b;
}
这样称呼它:
getOverlayedImage(getResources(), drawable1, drawable2);