需求:
在屏幕上画text,需要字体为蓝色,并且要有半透明效果
思路:
使用Canvas.drawText() 。
先看下面代码:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setAlpha(0x40);
paint.setColor(Color.BLUE);
canvas.drawText("Hello", 0, 0, paint);
}
你认为这代码没错吧?
是的逻辑上的确没错。
可是出来的效果却没有体现出半透明。
为什么捏?
折腾了好半天,最后注意到paint.setColor()方法里的说明:
Set the paint's color. Note that the color is an int containing alpha as well as r,g,b.
英文好的朋友们都看懂了吧,是的setColor中传的参数是包含了alpha值的。
因此我们等于是先设置了alpha值为0x40,然后再设回了不透明。
当然就不会体现alpha值啦。
正确写法,把paint.setAlpha(0x40);和 paint.setColor(Color.BLUE);两行位置调换就ok了!
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setAlpha(0x40);
canvas.drawText("Hello", 0, 0, paint);
}
呵,很简单的一个问题。居然搞半天。汗。
分享到:
相关推荐
讲解使用canvas.save()和canvas.restore()的demo
canvas.text.js
html2canvas.js 和html2canvas.min.js 以及应用示例
jsPdf.debug.js和html2canvas.js下载jsPdf.debug.js和html2canvas.js下载jsPdf.debug.js和html2canvas.js下载jsPdf.debug.js和html2canvas.js下载
html2canvas.min.js的源码,方便大家下载
flashcanvas.min.js flashcanvas.min.js flashcanvas.min.js flashcanvas.min.js
可以是用来在网页上面截屏的代码:html2canvas.js;基于html2canvas实现网页保存为图片。
APNG经过修改后,在QT,浏览器上可用的apng-canvas.js 参考博客使用:http://blog.csdn.net/ly305750665/article/details/77972415
html2canvas 页面元素转canvas转图片 fileSaver 文件下载 jszip 文件压缩
做项目需要用到html2canvas.js和jspdf.debug.js找了好久才找的,先存放在这里如果大家需要也可以下。
画布注意:Canvas.ts仍在早期开发中,尚未准备就绪。 功能缺失,并且会发生错误。
html2canvas.js下载
html2canvas.js实现整个区域甚至整个页面的截取,再次声明这不是一个小小的头像图片的移动截取(小小的截取就不要下载喽),是整个页面的截取;网页端需要的不多,就是现在不太好找了,所里我整理了一下