1

HI'm имеет imageview с EditText на этом изображении. Я хочу создать одиночное изображение этого imageview с EditText.Создайте образ изображения с текстом на нем

I судимое это,

editTextOptOneInput.buildDrawingCache(); 
imageViewOptOne.setImageBitmap(editTextOptOneInput.getDrawingCache()); 
imageViewOptOne.buildDrawingCache(); 
Bitmap bitmap1 = imageViewOptOne.getDrawingCache(); 

но chamge мой образ в черный, как мой цвет текста черный (я думаю).

+0

Попробуйте с помощью 'myContainer.buildD rawingCache(); ', вместо этого. 'myContainer' является макетом, который содержит как ваш EditText, так и ваш ImageView. Удалите две другие ** противоречащие ** инструкции .buildDrawingCache() '** **. –

+0

У меня есть относительный макет с несколькими «Imageview», видимость отсутствует. Только один «Imageview» с изображением, Edittext с текстом и другой значок «Imageview» с иконкой delete. Я не хочу, чтобы значок удаления в моем конечном изображении, что мне делать? – Akshay

+0

Извините, я не понимаю. – Akshay

ответ

2

Вы можете использовать только buildDrawingCache(), то последующие будет заменить предыдущее содержание.
Итак, вам лучше сгруппировать EditText и ImageView в контейнер и снять его.

ИЛИ ...

Вместо использования EditText, просто использовать TextView.
Этот один может иметь один или несколько составной вывод внутри.

Итак, вы можете снимать только TextView.

Это решение, так как оно уменьшает вид и (возможно) количество макетов.

[EDIT]

Чтобы использовать соединение просто использовать вводимый коэффициент в XML-android:drawableLeft = "@drawable/your_drawable" (и/или drawableRight, drawableTop, drawableBottom) атрибут/с вашей TextView.
Чтобы установить их в Java, используйте setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom), как найти в официальных документах: http://developer.android.com/reference/android/widget/TextView.html#setCompoundDrawablesWithIntrinsicBounds(int, Int, Int, Int)

+1

спасибо, это сработало. !! – Akshay

+0

вы можете поделиться каким-то кодом или ссылкой на релевантную ссылку –

+0

Я обновил свой ответ, включив ссылку на официальные документы о составных чертежах. –

0

Вы должны получить рисунок кэш из Родитель этого ImageView & EditText.

parentLayout.buildDrawingCache(); 
Bitmap bitmap1 = parentLayout.getDrawingCache(); 

Где parentLayout содержит ImageView & EditText.

0

Я не понимаю, почему вам это нужно, но, как я понимаю, вы должны создать новый объект Bitmap из чертежа кэша, прежде чем установить в качестве источника ImageView

0

Напоминание:

Если вы захватывая получившееся изображение + текст с экрана, качества выходное изображение, безусловно, скомпрометирован

Если вы хотите сохранить исходное качество изображения, вы должны использовать Canvas и Bitmap, чтобы помочь вам

Canvas c=new Canvas(); 
c.setBitmap(bitmap); // *mutable* copy of bitmap of the image for the ImageView 
c.drawText(text, x, y, paint); // font size and typeface can be set through "Paint" class 

bitmap.compress(CompressFormat.PNG, 100, new FileOutputStream(out)); // export output 
Смежные вопросы