android canvas(bitmap)失败

目前使用canvas在surfaceview上画路径
需要对路径进行缩放处理
所以想把canvas画的图放在bitmap上进行缩放处理
但是
使用canvas(bitmap)后,画出来的点,并没有显示在bitmap上是什么原因呀

1

3个回答

你的bitmap对象是不是从本地读取的?这种情况我曾经遇到过,也是new Canvas(bitmap);和canvas.setBitmap(bitmap);都没用,调用后都画不上去,这个情况只能你先用Bitmap.createBitmap创建一个等大小的空的bitmap,再用这个空的bitmap来调用canvas.setBitmap(bitmap);然后把你的从本地读取的bitmap用canvas.drawBitmap画到空bitmap上去,那么你得到的结果就可以画并且显示上去了。 去试一试吧, Bitmap bitmap=Bitmap.createBitmap(SourceBitmap.getWidth(),SouceBitmap.getHeight(),Bitmap.Config);//SourceBitmap为你提到的画不上去的Bitmap,这里创建了一个与SourceBitmap等大的空Bitmap Canvas canvas=new Canvas(bitmap);//设置Bitmap canvas.drawBitmap(SourceBitmap,0,0);//将原来的SourceBitmap画到bitmap上 //之后的bitmap就可以画上去了

0
crazyman_k
crazyman_k 首先谢谢您的回答 我的目的是对canvas画布上的内容进行缩放 然后我是想把canvas画的内容放在bitmap上面 通过缩放bitmap来实现目的 但是现在的状况是我能够用drawbitmap把bitmap画出来 但是bitmap上面没有我在之前通过canvas.drawline画出来的线段 所以现在也没法通过缩放bitmap来缩放线段
大约一年之前 回复

你的点可能已经画出来了,只是被canvas的图层遮住了,试试设置下你自己画点的图层的显示层级看看。

0
crazyman_k
crazyman_k 这个如何设置呀 没找到相关资料
大约一年之前 回复

你用自定义view试下看看

0
crazyman_k
crazyman_k 回复wz19870429: 现在用的办法就是遍历所有线段 重新绘制 这样花费时间很长
大约一年之前 回复
wz19870429
noobw 回复crazyman_k: 不会很耗时
大约一年之前 回复
crazyman_k
crazyman_k 回复wz19870429: 重新画一遍的话 耗时太长了吧
大约一年之前 回复
wz19870429
noobw 回复crazyman_k: 你不是要对画的线进行缩放处理显示吗?在自定义的surfaceview里面可以根据手势控制来实现缩放,然后根据缩放的比例重新绘制你画的线就可以了
大约一年之前 回复
crazyman_k
crazyman_k 现在是通过向一个画图类传入surfaceview来画图 请问改成自定义view是为了什么呀
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!