是否可以在ListView中显示的图像上显示徽章

时间:2013-12-12 14:32:13

标签: android android-listview badge

我有一个带有列表视图的屏幕的应用程序。在此列表视图中,我在每行显示不同的应用程序及其图像和名称(使用arraylist)。一个应用程序的Onclick(连续)它将启动该特定的应用程序。现在当有任何应用程序的更新我想在应用程序的图像上显示徽章。可以这样做吗?

我将图像存储为位图。有没有办法我可以添加徽章到位图(不是资源,但从网址获取)或任何方式在列表视图中显示徽章与arraylist。

2 个答案:

答案 0 :(得分:1)

试试这个。您可能需要根据图像大小修改大小选项。我将它用于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);

答案 1 :(得分:0)

有一个图书馆让你附上徽章: https://github.com/jgilfelt/android-viewbadger

您可以将徽章添加到包含图像的ImageView(或您正在使用的任何其他视图)。