Получить растровое изображение, прикрепленное к ImageView - PullRequest
301 голосов
/ 29 ноября 2011

Учитывая

ImageView image = R.findViewById(R.id.imageView);
image.setImageBitmap(someBitmap);

Возможно ли получить растровое изображение?

Ответы [ 6 ]

791 голосов
/ 29 ноября 2011
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
45 голосов
/ 29 ноября 2011

Это даст вам Bitmap от ImageView. Хотя это не тот объект растрового изображения, который вы установили. Это новый.

imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();

=== РЕДАКТИРОВАТЬ ===

 imageView.setDrawingCacheEnabled(true);
 imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 
                   MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
 imageView.layout(0, 0, 
                  imageView.getMeasuredWidth(), imageView.getMeasuredHeight()); 
 imageView.buildDrawingCache(true);
 Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache());
 imageView.setDrawingCacheEnabled(false);
1 голос
/ 03 февраля 2018

Напишите ниже код

ImageView yourImageView = (ImageView) findViewById(R.id.yourImageView);
Bitmap bitmap = ((BitmapDrawable)yourImageView.getDrawable()).getBitmap();
0 голосов
/ 20 августа 2017

Этот код лучше.

public static  byte[] getByteArrayFromImageView(ImageView imageView)
    {
        BitmapDrawable bitmapDrawable = ((BitmapDrawable) imageView.getDrawable());
        Bitmap bitmap;
        if(bitmapDrawable==null){
            imageView.buildDrawingCache();
            bitmap = imageView.getDrawingCache();
            imageView.buildDrawingCache(false);
        }else
        {
            bitmap = bitmapDrawable .getBitmap();
        }
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
        return stream.toByteArray();
    }
0 голосов
/ 16 июня 2015

попробуйте этот код:

Bitmap bitmap;
bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
0 голосов
/ 19 декабря 2014

Другой способ получить растровое изображение состоит в следующем:

Bitmap imagenAndroid = BitmapFactory.decodeResource(getResources(),R.drawable.jellybean_statue);
imageView.setImageBitmap(imagenAndroid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...