2016-11-17 86 views
0

我正在使用this庫,但他們沒有解釋像github上其他庫的所有細節。如何從Image Arraylist中設置ImageView?

中的onCreate

ImagePicker.create(this) 
      .folderMode(true) // folder mode (false by default) 
      .folderTitle("Folder") // folder selection title 
      .imageTitle("Tap to select") // image selection title 
      .single() // single mode 
      // multi mode (default mode) 
      .limit(10) // max images can be selected (99 by default) 
      .showCamera(true) // show camera or not (true by default) 
      .imageDirectory("Camera") // directory name for captured image ("Camera" folder by default) 
      // original selected images, used in multi mode 
      .start(12); // start image picker activity with request code 

這是工作,我可以看到畫廊。

onActivityResult:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     ImageView imageview = (ImageView)findViewById(R.id.iv1); 
     if (requestCode == 12 && resultCode == RESULT_OK && data != null) { 
      ArrayList<Image> images = data.getParcelableArrayListExtra(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES); 
      // do your logic .... 
      imageview.setImageBitmap(images);//It is not working, I know it is not bitmap but how to set? 
     } 
    } 

最後如何設置ImageView的?

+0

您不能將圖像視圖設置爲圖像的數組列表,您只能設置圖像視圖以將一個圖像作爲源。 此外,看起來你正在主線程上處理你的圖像,這也不是一個好主意。 –

+0

那麼這個圖書館的原因是什麼? –

+0

它不適合我的目的嗎? –

回答

0

您不能將圖像視圖設置爲圖像的數組列表,您只能設置圖像視圖以將一個圖像作爲源。

此外,看起來像你正在主線程上處理你的圖像,這也不是一個好主意。

您的圖片在陣,但你必須使用他們在多個圖像視圖,或者顯示自定義視圖中的多個圖像

+0

感謝您的迴應,現在沒有人在SO中回答我的問題。性能對於這個應用來說是最不重要的,也許我會在後臺線程中運行這些代碼。這個圖書館不適合我的目的嗎?有什麼辦法可以達到我的目的嗎? –

+1

那裏有很多教程。這裏是我通過搜索'圖像android顯示圖庫'找到的。 http://www.androidinterview.com/android-gallery-view-example-displaying-a-list-of-images/ –

+0

但是它的類型是Integer這個庫類型是Image,它不工作 –

0
private Bitmap getScreenshot(Image image) { 

    Image.Plane[] planes = image.getPlanes(); 
    ByteBuffer buffer = planes[0].getBuffer(); 

    int pixelStride = planes[0].getPixelStride(); 
    int rowStride = planes[0].getRowStride(); 
    int rowPadding = rowStride - pixelStride * mWidth; 

    // ??????Bitmap??? 
    Bitmap bitmap = Bitmap.createBitmap(mWidth + rowPadding/pixelStride, mHeight, Bitmap.Config.RGB_565); 
    bitmap.copyPixelsFromBuffer(buffer); 
    image.close(); 

    return bitmap; 
} 

圖片是資源,而不是一個圖像,但你可以使用上面的API通過使用ByteBuffer獲取位圖。在getScreenshot(圖片圖像)中傳遞images.get(position)。它會返回位圖,然後簡單地設置imageView.setImageBitmap(位圖) Example link