Java 如何使用;“长”;颜色
Android API 26引入了处理以下问题的新方法: 颜色长是Android O中引入的一种表示,用于存储 不同颜色空间中的颜色,比颜色整数更精确 现在我们可以使用新的颜色空间,如下所示:Java 如何使用;“长”;颜色,java,android,colors,android-8.0-oreo,Java,Android,Colors,Android 8.0 Oreo,Android API 26引入了处理以下问题的新方法: 颜色长是Android O中引入的一种表示,用于存储 不同颜色空间中的颜色,比颜色整数更精确 现在我们可以使用新的颜色空间,如下所示: long longGreenColor = Color.pack(0.0f, 3.1415f, 0.0f, 1.0f, ColorSpace.get(ColorSpace.Named.LINEAR_EXTENDED_SRGB)); 不错,颜色很长。现在怎么办 是否可以在android.grap
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);
颜色实例是不可变的,可以使用各种valueOf方法之一创建。例如:
// sRGB
Color opaqueRed = Color.valueOf(0xffff0000); // from a color int
Color translucentRed = Color.valueOf(1.0f, 0.0f, 0.0f, 0.5f);
// Wide gamut color
@ColorLong long p3 = pack(1.0f, 1.0f, 0.0f, 1.0f, colorSpaceP3);
Color opaqueYellow = Color.valueOf(p3); // from a color long
// CIE L*a*b* color space
ColorSpace lab = ColorSpace.get(ColorSpace.Named.LAB);
Color green = Color.valueOf(100.0f, -128.0f, 128.0f, 1.0f, lab);
我知道这个问题已经问了很长时间了(不是ColorLong:D),但是您是否进一步向下滚动文档
关于这种颜色有很多不同的说法
例如,您可以使用静态方法将long
转换为Color
,或者直接使用非静态方法
例如,您可以使用static创建类型为long
的颜色。那是在房间里
在这种情况下,您可以使用诸如static之类的方法来获得long
color的分量(本例中为alpha分量)
希望有帮助。这不是答案。长颜色确实不能用在画布上。这些“错误”、“错误”、“不好”的评论是什么意思?它不能编译吗?它会崩溃吗?它是否给出了错误的结果(如果是,那么具体是什么?)要使用Paint.setColor(LongColor),我们需要API级别29,所以我们需要使用Android 10。当我问这个问题时,API级别是26。升级到Android 10,这就是答案。好的。我尝试在网页中加载API级别26,但由于某些原因无法加载。API 26中缺少哪些方法?API 26中是否缺少此文档?谢谢你接受。是的,安卓8没有:(