2014-06-16 68 views
0

我正在創建類似Google環聊的ListView應用程序。列表項由左側的Imageview和右側的一些文本組成。看到下面的圖片。Android:自定義谷歌環聊像列表視圖

Google Hangout

我不知道如何來顯示這些圖像。當有一個人想要只顯示一個通知。但是,如果有更多的人想要按照上述照片顯示圖像。請幫助我。我怎樣才能做到這一點?

+0

你解決了這個問題嗎?你可以發佈你如何解決 – LittleGirl

+0

@LittleGirl是的,我解決了它。請參閱下面的答案。 –

回答

2

我自己解決了這個問題。

有兩種方法可以解決這個問題。

  1. 使用畫布生成一個位圖將是所有圖像的組合位圖。以下是生成四個人(四個圓圈)的位圖的代碼。

    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; 
    } 
    
  2. 另一種方法是,而不是使用單一的ImageView您可以使用RelativeLayout的,並在其中通過代碼添加ImageViews。如果有兩個人,則創建兩個ImageView並將其添加到佈局中,如果有四個人,則創建四個ImageView並將其添加到佈局中。