我在该图片上有imageview
EditText
。我想使用imageview
创建EditText
的单个图片。
我试过这个,
editTextOptOneInput.buildDrawingCache();
imageViewOptOne.setImageBitmap(editTextOptOneInput.getDrawingCache());
imageViewOptOne.buildDrawingCache();
Bitmap bitmap1 = imageViewOptOne.getDrawingCache();
但将我的图像变为黑色,因为我的文字颜色为黑色(我猜)。
答案 0 :(得分:2)
您只能使用 1 buildDrawingCache(),后续的替换以前的内容。
所以,你最好将EditText和ImageView分组到容器中并拍摄那个。
... OR
不使用EditText,只需使用TextView 这个内部可以有一个或多个复合可绘制。
所以,你可以只拍摄TextView。
这是首选解决方案,因为它减少了视图和(可能)布局计数。
<强> [编辑] 强>
要使用复合drawable,只需在xml中使用TextView的android:drawableLeft = "@drawable/your_drawable"
(和/或drawableRight,drawableTop,drawableBottom)属性。
要在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 :(得分:0)
您需要获取 imageview &amp;的父的绘图缓存的 的EditText 强>
parentLayout.buildDrawingCache();
Bitmap bitmap1 = parentLayout.getDrawingCache();
parentLayout 包含 imageview &amp;的 的EditText 强>
答案 2 :(得分:0)
我不明白你为什么需要它,但据我所知,你应该在设置为ImageView源之前从绘图缓存中创建新的Bitmap对象
答案 3 :(得分: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