当前位置: 代码迷 >> Android >> 用Canvas保存EditText并绘制出来
  详细解决方案

用Canvas保存EditText并绘制出来

热度:45   发布时间:2016-04-28 05:32:01.0
求助用Canvas保存EditText并绘制出来
本帖最后由 anyger326 于 2014-05-19 09:53:15 编辑
我写了个demo,核心是用canvas来编辑文字
当点击某处时,通过onTouchEvent判断,在该处add一个edittext
当点击其他处时,把之前的edittext保存下来然后remove掉,并用canvas照原样画出来
现在问题是,因为涉及到要addView才能添加edittext到屏幕上(在ViewGroup类里实现)
但在canvas的绘图都通过onDraw来实现(在View类里实现)

于是矛盾来了,要么是在ViewGroup里可以add edittext,但不能用canvas绘图
要么是在view里可以用canvas绘图,但不能add edittext

求大神指点,有什么解决办法
或者指出我的思路哪里有问题,怎么改正
------解决方案--------------------
1.点击某处出现一个EditText,需要在最上层有个透明的ViewGroup,承接onTouchEvent事件,点击后取得坐标插入EditText。
2.点击其他地方时消掉之前的EditText,就需要在刚才的ViewGroup下面有个View,将EditText的”外观“画在view的画布上,同时移除掉ViewGroup中的EditTex。

现在的问题是怎么样得到EditText的“外观”然后画在view的画布上,这就需要调用EditText的setDrawingCacheEnabled后调用这个buildDrawingCache获得EditText的”外观“bitmap,画在view上,再掉setDrawingCacheEnabled关闭EditText的缓存。