簡體   English   中英

如何從Image Arraylist設置imageview?

[英]How to set imageview from Image Arraylist?

我正在使用庫,但他們沒有像github上的其他庫一樣解釋所有詳細信息。

在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?

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

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

您的圖像在數組中,但是您必須在多個圖像視圖或顯示多個圖像的自定義視圖中使用它們

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(Image image)中傳遞images.get(position)。 它會返回位圖,然后只需設置imageView.setImageBitmap(bitmap) 示例鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM