Android 7.1 默认自拍镜像

Android 7.1 默认自拍镜像
近来收到客户需求反馈需要将相机前摄成像默认为镜像显示,大致思路我们可以在保存数据前将前摄拍的照片转为镜像,保存数据是通过PhotoMode.java文件中的saveData方法实现,具体修改参照如下:

首先添加将图片转为镜像显示的方法,具体功能代码参照如下:

/vendor/mediatek/proprietary/packages/apps/Camera2/common/src/com/mediatek/camera/common/utils/CameraUtil.java

+public static byte[] mirrorJpegData(byte[] jpegData, int orientation) {
+        byte[] dest = jpegData;
+        BitmapFactory.Options opts = new BitmapFactory.Options();
+        opts.inMutable = true;
+        Bitmap b = BitmapFactory.decodeByteArray(jpegData, 0, jpegData.length, opts);
+        b = PhotoModeHelper.rotateAndMirror(b, 0, true);
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        b.compress(Bitmap.CompressFormat.JPEG, 100, baos);
+        dest = baos.toByteArray();
+        b.recycle();
+
+        return dest;
+    }

其次我们在相机保存数据前将前摄拍的照片转为镜像,拍摄时使用的是前摄还是后摄可以通过CameraId来区分,CameraId值为0是后摄,CameraId值为1是前摄,具体修改参照如下:

/vendor/mediatek/proprietary/packages/apps/Camera2/common/src/com/mediatek/camera/common/mode/photo/PhotoMode.java

   private void saveData(byte[] jpegData) {
        if (jpegData != null) {
            //check memory to decide whether it can take next picture.
            //if not, show saving
            ISettingManager.SettingController controller = mISettingManager.getSettingController();
            String dngState = controller.queryValue(KEY_DNG);
            long saveDataSize = jpegData.length;
+	    if(mCameraId.equals("1")){
+		jpegData = CameraUtil.mirrorJpegData(jpegData,0);
+	    }
            if (dngState != null && "on".equalsIgnoreCase(dngState)) {
                saveDataSize = saveDataSize + DNG_IMAGE_SIZE;
            }

最后成像后在相机界面预览的缩略图我们也要做相应的镜像处理,具体修改参照如下:

/vendor/mediatek/proprietary/packages/apps/Camera2/common/src/com/mediatek/camera/common/mode/photo/PhotoMode.java

   private void updateThumbnail(byte[] jpegData) {
        Bitmap bitmap = BitmapCreator.createBitmapFromJpeg(jpegData, mIApp.getAppUi()
                .getThumbnailViewWidth());
+	    if(mCameraId.equals("1")){
+	    	bitmap = PhotoModeHelper.rotateAndMirror(bitmap, 0, true);
+	    }
        mIApp.getAppUi().updateThumbnail(bitmap);
    }

重新编译验证,修改生效,已实现相机前摄成像默认为镜像显示

  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Android 7.1版本默认搭载了谷歌拼音输入法。谷歌拼音输入法是一款由谷歌公司开发的输入法应用程序,常用于Android系统设备上。它支持中文拼音输入、手写输入和语音输入等多种输入方式。 谷歌拼音输入法具有准确的词库和智能联想功能,可以根据用户的输入习惯和语言习惯智能预测下一个单词。通过学习用户的输入习惯,它可以自动纠正并补全拼音,提高输入速度和准确度。此外,它还可以提供实时拼音显示和简体繁体转换等功能。 除了拼音输入,谷歌拼音输入法还支持手写输入。用户可以在屏幕上用手指或者带有触控笔的设备上书写汉字,输入法会自动识别手写的字形并转化为文字。这种输入方式对于不熟悉拼音输入或者希望输入特定汉字时非常有用。 另外,谷歌拼音输入法还支持语音输入功能。用户可以通过按住输入法上的语音输入按钮,使用语音输入来输入文字。输入法会将语音转化为文字并显示在屏幕上。 总体来说,Android 7.1版本的默认谷歌拼音输入法是一款功能齐全、准确智能的输入法应用程序,提供了多种输入方式供用户选择,可以满足用户日常手机输入的需求。 ### 回答2: Android 7.1默认搭载谷歌拼音输入法,这是一款由谷歌公司开发的输入法应用。谷歌拼音输入法提供了快速、准确和智能的拼音输入体验,方便用户在Android设备上输入中文。它支持标准的汉字拼音输入模式,用户可以根据拼音首字母进行选择并输入相应的汉字。 谷歌拼音输入法还具有强大的词库功能,可以根据用户的输入习惯和个性化记忆,快速提供准确的推荐词汇选项,减少输入错误的可能性。此外,该输入法还支持快速的手写输入模式,用户可以直接在屏幕上书写汉字,输入法会自动将手写文字转化为相应的文字。 在Android 7.1系统中,谷歌拼音输入法还内置了智能语音输入功能,用户可以通过语音输入的方式快速输入文字。这让用户在使用Android设备时,不再需要长时间地敲击键盘,只需要简单地说出要输入的内容,输入法会自动将语音转化为文字。 总而言之,谷歌拼音输入法是一款功能强大、易用且智能的输入法应用,为Android 7.1用户提供了便捷的中文输入体验,大大提高了输入速度和准确性,是一款令人满意的输入工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jeffries_C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值