Canvas.drawText() 设置了alpha值却没有半透明效果的问题
2010-12-07 11:23
92 查看
在屏幕上画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);
}
呵,很简单的一个问题。居然搞半天。汗。
来自:http://da-en.javaeye.com/blog/669661
思路:
使用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);
}
呵,很简单的一个问题。居然搞半天。汗。
来自:http://da-en.javaeye.com/blog/669661
相关文章推荐
- Canvas.drawPath() 设置了alpha值却没有半透明效果的有关问题
- Android EditText设置imeOptions没有效果的解决方法
- Android中“android:elevation”设置阴影,在真机上没有效果的问题
- android canvas drawText()文字居中效果
- [Qt]QWidget设置背景实际却没有效果的问题
- 在SurfaceView中,用Canvas.drawBitmap,设置透明度无效的问题
- FIFO 进程间通讯过程设置了阻塞,没有效果 的问题与解决
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- 关于设置jQuery的animate动画没有显示效果的问题
- TextView实现跑马灯效果 以以实现TextView没有边框 设置我们自己的背景
- canvas画布属性globalAlpha 和 createRadialGradient函数出现的设置问题
- HTML5,canvas中的线型属性lineCap设置之后没有效果!
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
- Android Canvas DrawText中文乱码问题。
- android软键盘把布局顶上去,在AndroidManiFest.xml设置windowSoftInputMode没有效果的问题解决
- 关于自定义dialog动态设置宽度没有效果问题
- 设置text-indent:-9999px;为何没有效果?
- 解决TextView设置跑马灯但却没有效果