SUPPRESSED_EFFECT_PEEK 防止通知短暂进入视图(“滑出”)。
SUPPRESSED_EFFECT_STATUS_BAR 防止通知显示在支持状态栏的设备的状态栏中。
SUPPRESSED_EFFECT_BADGE 在支持标志的设备上屏蔽标志。 如需了解详细信息,请参阅修改通知标志。
SUPPRESSED_EFFECT_AMBIENT 在支持微光显示的设备上屏蔽通知。
SUPPRESSED_EFFECT_NOTIFICATION_LIST 防止通知显示在支持列表视图(如通知栏或锁屏)的设备的列表视图中。
多摄像头支持和摄像头更新
在运行 Android 9 的设备上,您可以通过两个或更多物理摄像头来同时访问多个视频流。在配备双前置摄像头或双后置摄像头的设备上,您可以创建只配备单摄像头的设备所不可能实现的创新功能,例如无缝缩放、背景虚化和立体成像。 通过该 API,您还可以调用逻辑或融合的摄像头视频流,该视频流可在两个或更多摄像头之间自动切换。 摄像头方面的其他改进还包括附加会话参数和 Surface 共享,前者有助于降低首次拍照期间的延迟,而后者则让摄像头客户端能够处理各种用例,而无需停止并启动摄像头视频流。 我们还针对基于显示屏的 flash 支持和 OIS 时间戳访问新增了一些 API,用以实现应用级的图像稳定化和特效。
在 Android 9 中,多摄像头 API支持单色摄像头,适用于具有 FULL 或 LIMITED 功能的设备。 单色输出通过 YUV_420_888 格式实现,Y 为灰度,U (Cb) 为 128,V (Cr) 为 128。
在受支持的设备上,Android 9 还支持外置 USB/UVC 摄像头。
ImageDecoder
Android 9 引入了 ImageDecoder 类,可提供现代化的图像解码方法。 使用该类取代 BitmapFactory 和 BitmapFactory.Options API。
ImageDecoder 让您可通过字节缓冲区、文件或 URI 来创建 Drawable 或 Bitmap。 要解码图像,请首先以编码图像的来源为参数,调用 createSource()。 然后,通过传递 ImageDecoder.Source 对象来调用 decodeDrawable() 或 decodeBitmap(),从而创建 Drawable]或 Bitmap。 要更改默认设置,请将 OnHeaderDecodedListener 传递给 decodeDrawable() 或 decodeBitmap()。 ImageDecoder 调用 onHeaderDecoded(),以图像的默认宽度和高度(若已知)为参数。 如果编码图像是动画 GIF 或 WebP,decodeDrawable() 将返回 Drawable,它是 AnimatedImageDrawable 类的一个实例。
您可以使用不同的方法来设置图像属性:
- 要将解码的图像缩放到精确尺寸,请将目标尺寸传递给 setTargetSize()。 您也可以使用样图尺寸来缩放图像。 将样图尺寸直接传递给setTargetSampleSize()。
- 要在缩放图像的范围内裁剪图像,请调用 setCrop()。
- 要创建可变位图,请将 true 传递给 setMutableRequired()。
通过 ImageDecoder 还可以为圆角或圆形遮罩之类的图像添加复杂的定制效果。 以 PostProcessor 类的一个实例作为参数使用 setPostProcessor(),执行您所需的任何绘图命令。
注:对 AnimatedImageDrawable进行后处理时,效果会出现在动画的所有帧中。
动画
Android 9 引入了 A