1 广色域适配概述
广色域介绍:developer.android.com/training/wi…
2 适配注意点
由于启动广色域模式时,Activity的窗口将更多内存和GPU处理能力用于画面构成。 在启用广色域模式之前,您应仔细考虑该 Activity 是否真的能从中受益。 例如,以全屏模式显示照片的 Activity 适合使用广色域模式,但显示较小缩略图的 Activity 则不建议。
Activity适配 onCreate中,先通过Configuration#isScreenWideColorGamut() 判断设备及系统支持后再启用广色域模式,适配方式如下
getWindow().setColorMode(ActivityInfo.COLOR_MODE_WIDE_COLOR_GAMUT);
Glide适配
// 颜色空间设置为PreferredColorSpace.DISPLAY_P3
fun getRequestOptionsWithColorSpace(options: RequestOptions): RequestOptions {
if (isSupportWCG()) {
options.set(Downsampler.PREFERRED_COLOR_SPACE, PreferredColorSpace.DISPLAY_P3)
} else {
options.set(Downsampler.PREFERRED_COLOR_SPACE, PreferredColorSpace.SRGB)
}
return options
}
BitmapFactory.Options设置
final BitmapFactory.Options options = new BitmapFactory.Options();
// Decode this file to sRGB color space.
options.inPreferredColorSpace = ColorSpace.get(ColorSpace.Named.SRGB);
// Decode this file to P3 color space
// options.inPreferredColorSpace = ColorSpace.get(ColorSpace.Named.DISPLAY_P3);
Bitmap bitmap = BitmapFactory.decodeFile(FILE_PATH, options);
上述代码把目标色域空间设置成 SRGB 或者设置 DISPLAY_P3, 保存在 options 参数里。
3 测试方法
取官方的测试小机器人图片,在当前适配好的界面查看,显示小机器人则表示适配成功