Android 创建带有文本视图的imageview图像
您好,我有一个Android 创建带有文本视图的imageview图像,android,android-edittext,android-imageview,drawingcache,Android,Android Edittext,Android Imageview,Drawingcache,您好,我有一个图像视图在该图像上有编辑文本。我想用EditText创建该imageview的单个图像 我试过这个 editTextOptOneInput.buildDrawingCache(); imageViewOptOne.setImageBitmap(editTextOptOneInput.getDrawingCache()); imageViewOptOne.buildDrawingCache(); Bitmap bitmap1 = imageViewOptOne.getDrawingC
图像视图
在该图像上有编辑文本
。我想用EditText
创建该imageview
的单个图像
我试过这个
editTextOptOneInput.buildDrawingCache();
imageViewOptOne.setImageBitmap(editTextOptOneInput.getDrawingCache());
imageViewOptOne.buildDrawingCache();
Bitmap bitmap1 = imageViewOptOne.getDrawingCache();
但是将我的图像更改为黑色,因为我的文本颜色是黑色的(我猜)。您需要获取图像视图的父级的绘图缓存
parentLayout.buildDrawingCache();
Bitmap bitmap1 = parentLayout.getDrawingCache();
如果parentLayout包含imageview和EditText,我不明白您为什么需要它,但据我所知,在设置为imageview的源之前,您应该从图形缓存创建新的位图对象,您只能使用1buildDrawingCache(),后续内容将替换先前的内容。
parentLayout.buildDrawingCache();
Bitmap bitmap1 = parentLayout.getDrawingCache();
因此,您最好将EditText和ImageView分组到一个容器中,然后拍摄该容器
或者
不要使用编辑文本,只需使用文本视图即可。这一个内部可以有一个或多个可拉伸的复合 因此,您可以只拍摄文本视图 这是首选的解决方案,因为它减少了视图和(可能)布局计数 [编辑] 要使用复合drawables,只需在xml中使用TextView的
android:drawableLeft=“@drawable/your_drawable”
(和/或drawableRight、drawableTop、drawableBottom)属性。要在Java中设置它们,请使用setCompoundDrawableSwithinInsitCBounds(int left、int top、int right、int bottom),如官方文档中所示:、int、int、int)提醒: 如果从屏幕捕获结果图像+文本,输出图像的质量肯定会受到影响 如果你想保持图像的原始质量,你应该使用画布和位图来帮助你
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
尝试使用myContainer.buildDrawingCache()相反,代码>
myContainer
是包含EditText和ImageView的布局。删除另外两条冲突的.buildDrawingCache()
指令。我有一个相对布局,其中多个Imageview
的可见性已消失。只有一个带有图像的Imageview
、带有文本的Edittext和另一个带有删除图标的Imageview
。我不想在我的最终图像中出现删除图标,我该怎么办?对不起,我没有看到它。您可以只使用1buildDrawingCache()
,后续的图标将替换以前的内容。因此,您最好将EditText和ImageView分组到一个容器中并拍摄该容器。或不要使用EditText,只需使用TextView即可。这一个可以有一个或多个复合拉深内。所以,你可以只拍摄文本视图。@DerGolem非常感谢你的工作。你能分享一些代码或其他相关链接吗?我更新了我的答案,包括对关于复合绘图的官方文件的参考。