3
的Android API 26引入了新的方法来处理color:如何使用“长”颜色?
颜色多头在安卓Ø推出存储在不同的色彩空间 颜色,比色整数更精确的表示。现在
我们可以使用新的色彩空间,就像这样:
long longGreenColor = Color.pack(0.0f, 3.1415f, 0.0f, 1.0f, ColorSpace.get(ColorSpace.Named.LINEAR_EXTENDED_SRGB));
尼斯,长颜色。怎么办?
- 能不在
android.graphics.Canvas
- 使用可不在
android.graphics.Paint
- 使用可不在
android.graphics.Bitmap
使用我应该如何使用长绘图时的颜色?
例如:
Bitmap bitmap = Bitmap.createBitmap(20, 20, Bitmap.Config.RGBA_F16, true, ColorSpace.get(ColorSpace.Named.LINEAR_EXTENDED_SRGB));
long longColor = Color.pack(0.0f, 3.1415f, 0.0f, 1.0f, ColorSpace.get(ColorSpace.Named.LINEAR_EXTENDED_SRGB));
bitmap.eraseColor(longColor);//ERROR
bitmap.eraseColor(Color.toArgb(longColor));//BAD!
bitmap.eraseColor((int) longColor);//WRONG!!!
Paint paint = new Paint();
paint.setColor(longColor);//ERROR
Canvas canvas = new Canvas(bitmap);
canvas.drawPoint(1, 1, paint);