#android #listview
#Android #listview
Вопрос:
Я создаю приложение с ListView, подобное приложению Google Hangout. Элемент списка состоит из Imageview слева и некоторого текста справа. Смотрите Изображение ниже.
Я не знаю, как показать эти изображения. Когда есть один человек, я хочу показать только один циркуляр. Однако, если есть больше людей, я хочу показать изображения в соответствии с приведенной выше фотографией. Пожалуйста, помогите мне. Как я могу это сделать?
Комментарии:
1. вы решили это? можете ли вы опубликовать, как вы решаете
2. @LittleGirl Да, я решил это. Смотрите мой ответ ниже.
Ответ №1:
Я решил эту проблему сам.
Есть два способа решить эту проблему.
-
Использование canvas для создания растрового изображения будет представлять собой объединенное растровое изображение всех изображений. Ниже приведен код для создания растрового изображения четырех человек (четыре круга).
public static Bitmap customImageFour(Context context, Bitmap[] bitmaps, int size) { Bitmap bmp1 = Bitmap.createScaledBitmap(bitmaps[0], size/2, size/2, false); Bitmap bmp2 = Bitmap.createScaledBitmap(bitmaps[1], size/2, size/2, false); Bitmap bmp3 = Bitmap.createScaledBitmap(bitmaps[2], size/2, size/2, false); Bitmap bmp4 = Bitmap.createScaledBitmap(bitmaps[3], size/2, size/2, false); Bitmap.Config conf = Bitmap.Config.ARGB_8888; Bitmap bitmap1 = Bitmap.createBitmap(bmp1); bitmap1 = getRoundedCornerBitmap(bitmap1, bitmap1.getWidth()/2); Bitmap bitmap2 = Bitmap.createBitmap(bmp2); bitmap2 = getRoundedCornerBitmap(bitmap2, bitmap2.getWidth()/2); Bitmap bitmap3 = Bitmap.createBitmap(bmp3); bitmap3 = getRoundedCornerBitmap(bitmap3, bitmap3.getWidth()/2); Bitmap bitmap4 = Bitmap.createBitmap(bmp4); bitmap4 = getRoundedCornerBitmap(bitmap4, bitmap4.getWidth()/2); Bitmap finalBitmap = Bitmap.createBitmap(size, size, conf); Canvas canvas = new Canvas(finalBitmap); canvas.drawBitmap(bitmap1, 0f, 0f, null); canvas.drawBitmap(bitmap2, bitmap1.getWidth(), 0f, null); canvas.drawBitmap(bitmap3, 0f, bitmap1.getHeight(), null); canvas.drawBitmap(bitmap4, bitmap1.getWidth(), bitmap1.getHeight(), null); return finalBitmap; }
-
Другой способ заключается в том, что вместо использования одного ImageView вы можете использовать RelativeLayout и добавлять в него ImageViews с помощью кода. Если есть два человека, создайте два ImageViews и добавьте их в макет, если есть четыре человека, создайте четыре ImageViews и добавьте их в макет.