1
回答
Android 编程:画布上写文字和画一个圆,圆的文字颜色相同,然后让他们慢慢相交,相交部分变为其他颜色
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

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


举报
十六筆畫
发帖于4年前 1回/784阅
共有1个答案 最后回答: 4年前

你是要改变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)重置这个像素点的颜色。

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

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