Android: как конвертировать весь ImageView в растровое изображение? - PullRequest
38 голосов
/ 17 января 2011

У меня есть приложение, которое отображает изображения с различным соотношением, с измененным размером внутри (centerInside) imageView. Что мне нужно, это создать растровое изображение из ImageView, включая фон (черный в этом случае).

Так, например, у меня есть экран устройства 320x480, полноэкранное изображение с размером изображения 280x480. Как я могу получить растровое изображение 320x480 от него?

Вверху этого изображения у меня есть несколько логотипов или кнопок, которые я не хочу включать в растровое изображение, они как на верхнем слое. Все, что мне нужно, это растровое изображение с изображением и черной рамкой с некоторых сторон.

Ответы [ 6 ]

94 голосов
/ 17 января 2011

Вы можете просто использовать кэш изображений imageView.Он будет отображать весь вид в том виде, в котором он расположен (масштабирован, граничит с фоном и т. Д.), В новое растровое изображение.

, просто убедитесь, что оно построено.экран увидел это.

59 голосов
/ 17 января 2011

Вы пробовали:

BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
5 голосов
/ 17 января 2011

Просто подумайте вслух (с небольшим опытом работы с графикой в ​​Java), может быть, что-то вроде этого сработает?Возможно, есть лучший способ достичь своей цели, чем вы думаете.

3 голосов
/ 21 февраля 2017

Это рабочий код

imageView.setDrawingCacheEnabled(true);
imageView.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache());
1 голос
/ 25 июня 2013
try {
        photo.setImageURI(Uri.parse("Location");
        BitmapDrawable drawable = (BitmapDrawable) photo.getDrawable();
        Bitmap bitmap = drawable.getBitmap();
        bitmap = Bitmap.createScaledBitmap(bitmap, 70, 70, true);
        photo.setImageBitmap(bitmap);

    } catch (Exception e) {

    }
0 голосов
/ 17 мая 2019

Работает в Котлине после buildDrawingCache() устарела

 // convert imageView to bitmap
val bitmap = (imageViewId.getDrawable() as BitmapDrawable).getBitmap()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...