Изображение обрезается в соответствии с портом просмотра с помощью layout.getDrawingCache () - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть абсолютный макет, который содержит 2 кнопки и динамически добавленное изображение.Ширина и высота изображения больше, чем размер экрана, и их можно прокручивать в обоих направлениях.Мне нужно разместить динамический текст на этом изображении.Текстовое представление добавляется во время выполнения и может перемещаться в любое место изображения.После размещения представления текста в нужной позиции мне нужно сохранить изображение с динамически размещенным текстом.Для этого я использую приведенный ниже код

absView.setDrawingCacheEnabled (true);              
bitmap = Bitmap.createBitmap(absView.getDrawingCache());
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
absView.setDrawingCacheEnabled(false);

Но растровое изображение содержит только видимый вид, а не скрытый вид всего изображения, которое больше размера экрана.Как я могу получить весь макет, который будет записан в растровом изображении с динамически размещенным текстовым представлением?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2011

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

 Bitmap viewBitmap = Bitmap.createBitmap(viewWidth,viewHeight,Bitmapconfig);
 Canvas viewCanvas = new Canvas(viewBitmap);
 absView.draw(viewCanvas);

После этого viewBitmap может иметь полный вид, нарисованный в нем.

Кэш чертежа не будет иметь полный вид какрисуется только видимая часть представления, и это то, что кэшируется.

0 голосов
/ 01 ноября 2011

вы не сможете как absView.getDrawingCache() получить вам кеш рисования вида, для частей, которые не видны, кеш не будет сохранен, я думаю

если вы хотите объединить растровые изображения, это может помочь вам

объединение двух файлов PNG в Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...