我派生了一个类View
并实现了该onDraw
方法,如下所示:
protected void onDraw( Canvas canvas )
{
Paint p = new Paint();
p.setColor( Color.HSVToColor( new float[]{ 1.f, 1.f, 1.f } ) );
p.setStyle( Paint.Style.FILL );
canvas.drawRect( area, p );
}
我期待看到一个颜色不同的矩形,但屏幕保持白色,不管我为色调、值和饱和度尝试了哪些值。变量area
是一个RectF
。没关系,因为如果我将颜色设置为Color.RED
,它会起作用。
Android 文档说明Color.HSVToColor
:
将 HSV 组件转换为 ARGB 颜色。Alpha 设置为 0xFF。hsv[0] 是色调 [0 .. 360) hsv[1] 是饱和度 [0...1] hsv[2] 是值 [0...1] 如果 hsv 值超出范围,则它们被固定。
我尝试了很多色相/饱和度/数值组合,但屏幕始终保持空白。此外,我尝试了以下方法,结果相同:
float[] hsv = new float[ 3 ];
Color.colorToHSV( Color.RED, hsv );
Paint p = new Paint();
p.setColor( Color.HSVToColor( hsv ) );
p.setStyle( Paint.Style.FILL );
canvas.drawRect( area, p );
我究竟做错了什么?