Как я могу получить растровое изображение холста в onDraw?

Как я могу создать растровое изображение из холста пользовательского представления.

 katzenhut22 мая 2014 г., 12:38
@ user940016 - ваш вопрос не показывает никаких исследований или попыток решить проблему самостоятельно. Прочитайте это для получения дополнительной информации: / Stackoverflow.com вопросы / как к спрашивать
 user94001619 окт. 2012 г., 18:47
Я просто не понимаю, почему за него проголосовали ...

Ответы на вопрос(3)

Пока нетgetBitmap()ункция @ для холста, поскольку вы создаете пользовательский вид, вместо этого вы можете написать такую функцию внутри вашего класса представлени

public Bitmap get(){
   return this.getDrawingCache();
}

Это возвращает растровое изображение вида, но важно, чтобы ввс ваши конструкторы вы добавляете это,

this.setDrawingCacheEnabled(true);

ИначеgetDrawingCache вернетсяnull

 jcw20 янв. 2014 г., 18:15
@ Шри - ты добавилsetDrawingCacheEnabled(true) конструкторам вашего взгляда?
 sri20 янв. 2014 г., 07:57
это всегда даст нулевой объект?
 AB120903 июн. 2013 г., 16:45
Точно .. что я искал. Большое спасибо.
 Olaia30 дек. 2014 г., 20:12
Lifesaver! Большое спасибо. Не могу найти это нигде.
 Rohitesh22 февр. 2017 г., 14:02
Это сработало как шарм! Спасибо @ jcw

что в Canvas есть функция setBitmap, но нет функции getBitmap. Это странно, но в любом случае это позволяет мне самостоятельно создавать растровое изображение и передавать его на холст, сохраняя ссылку.

Решение Вопроса

Bitmap изCanvas. Единственный способ получить к нему доступ - это передать его самостоятельно при создании холста, подобного этомуnew Canvas(myBitmap) и держи ссылку.

EDIT2: см. @Alex комментарий удар - подход передачиBitmap наCanvas не работает для более поздних версий Android.

EDIT: если вы не создаетеCanvas вы сами можете создать экран размером сBitmap (или любой другой размер), а затем передайте егоCanvas вonDraw звонит так:canvas.setBitmap(myBitmap).

 kostja01 июн. 2012 г., 12:31
@ user940016 отредактировал ответ, чтобы отразить это
 user94001601 июн. 2012 г., 12:00
Но если я использую onDraw, я получаю холст, а не создаю его сам, поэтому у меня нет ссылки на растровое изображение ...
 kostja23 авг. 2015 г., 09:43
это могло измениться за последние 3 года. В прошлый раз я пробовал с 2.3 :) С какой версией вы пробовали? И спасибо, что заметили, я буду редактировать соответственн
 Alex21 авг. 2015 г., 11:35
Если ты не создаешьCanvas вы сами не можете взаимодействовать с егоBitmap. Звонокcanvas.setBitmap() вonDraw() вызываетUnsupportedOperationException

Ваш ответ на вопрос