Android 编程:画布上写文字和画一个圆,圆的文字颜色相同,然后让他们慢慢相交,相交部分变为其他颜色

十六筆畫 发布于 2013/12/25 16:50
阅读 930
收藏 0

和这个图的效果一样,可能有点看不清,描述一下:90度时白色的,90度和白色部分相交的地方是黑色,90度的其他部分是白色,这用到什么类可以解决吗,已经试过android.graphics.Path的path类,path不能添加文字,还有其他方法吗,各位大神求解


加载中
0
nevans
nevans

你是要改变Bitmap上某个位置的颜色吧?

我想到ColorFilter应该可以实现,但我未试过,stackoverflow上有一篇文章可以参考:http://stackoverflow.com/questions/9643603/modifying-the-color-of-an-android-drawable,你也可以搜索一下ColorFilter的相关文档看看是不是能实现。

另外,你可以尝试将文字画在bitmap上,用Rect描述白色区域的位置,再跟bitmap所在区域的Rect进行相交对比,计算出哪些坐标需要变色,再调用Bitmap.setPixel(x, y, color)重置这个像素点的颜色。

这些都是我的想法,未通过实践,如果你有结果,记得要分享一下!

nevans
nevans
回复 @十六筆畫 : Canvas不就是一张Bitmap吗,所有View最终都是Bitmap,你可以先画到Bitmap上,再根据坐标改变颜色。
十六筆畫
回复 @nevans : 不是改变一个图的颜色,比如用canvas画一个圆,白色的,然后写字,也是白色,这时候让它们慢慢靠近,重合的部分变为黑色,如果用path的画,两个圆相交的部分可以变色,但是圆和文字的相交就做不到了
nevans
nevans
ColorFilter
十六筆畫
不是bitmap,数字大小会变动的,看看有没有类可以将相同颜色反转
返回顶部
顶部