各厂商Android系统碰到的奇奇怪怪问题的记录

各厂商Android系统碰到的奇奇怪怪问题的记录各厂商Android系统碰到的奇奇怪怪问题的记录 小米 MIUI 华为 鸿蒙 VIVO OriginOS

小米

MIUI

Camera2

CaptureRequest.Builderset方法,对部分key不生效

// MIUI中,CaptureRequest.Builder设置图片方向不生效
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION,getJpegOrientation(deviceRotation));

解决方法:获得拍摄好的照片Bitmap后,再对其进行旋转

public Bitmap rotateBitmap(Bitmap bitmap, int angle) {
   Matrix matrix = new Matrix();
   matrix.setRotate(angle);
   return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
}

华为

HarmonyOs

TextureView

华为ROM(EMUI不确定有没有这种情况)计算TextureView边界的代码似乎有bug

现象:

  1. 相机预览和拍摄时有概率画面畸形
  2. 渲染超过一屏的文本会渲染空白

解决方法:手动管理TextureView的销毁和创建

第一步:在对TextureView设置TextureView.SurfaceTextureListener时,另onSurfaceTextureDestroyed返回false

mTextureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
    @Override
    public void onSurfaceTextureAvailable(@NonNull SurfaceTexture surface, int width, int height) {
       ...
    }

    @Override
    public void onSurfaceTextureSizeChanged(@NonNull SurfaceTexture surface, int width, int height) {
    }

    @Override
    public boolean onSurfaceTextureDestroyed(@NonNull SurfaceTexture surface) {
        // 这里默认是返回true,代表系统自动管理,我们把它设为false手动管理
        return false;
    }

    @Override
    public void onSurfaceTextureUpdated(@NonNull SurfaceTexture surface) {
    }
});

第二步:在TextureView不渲染的时候手动release掉其中的SurfaceTexture,后面再渲染时,系统调用draw方法后,会自动重新new一个SurfaceTexture出来

SurfaceTexture surfaceTexture = mTextureView.getSurfaceTexture();
if (surfaceTexture != null) {
    surfaceTexture.release();
}

VIVO

OriginOS

字体

OriginOS中,TextView设置了android:fontFamily后,不能在设置android:textStyle属性,否则会导致使用的字体被系统默认字体覆盖

今天的文章各厂商Android系统碰到的奇奇怪怪问题的记录分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/21478.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注