2010-06-13 2 views
0

Я хочу получить растровое изображение, которое нарисовано, когда отображается текстовое изображение, но без отображения текстового вида в действии. что-то вроде этого:получить растровое изображение из textview в android

TextView t = new TextView(this); 
t.forceToDrawItself(); 
Bitmap b=t.getViewBitmap(); 

как это возможно?

ответ

2

View#draw(Canvas) будет нарисовать весь вид в данном Canvas. Вы можете использовать конструктор Canvas(Bitmap) для создания холста, который рисует в заданный Bitmap.

Создайте растровое изображение нужного размера с помощью Bitmap#createBitmap(int, int, Bitmap.Config), оберните его на холсте и передайте его методу draw вашего вида.

+0

OK хорошо работает. теперь у меня есть проблема, что я должен установить размер представления вручную. Есть ли способ подсчитать размер представления по умолчанию? например t.initSize(); ? –

+0

Взгляните на раздел «Макет» в документации класса «Вид». (http://developer.android.com/reference/android/view/View.html). Вы хотите вызвать View # measure с помощью MeasureSpecs для ширины и высоты. – adamp

+0

Это помогло мне. Но я столкнулся с одной проблемой. Мне нужно центрировать выравнивание текста. Я попробовал setGravity (Gravity.CENTER), но он не дает требуемого результата. Какие-либо предложения? – Ammar

Смежные вопросы