亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么實現一個拍照翻譯小程序

發布時間:2021-06-28 16:27:55 來源:億速云 閱讀:184 作者:Leah 欄目:移動開發

本篇文章為大家展示了Android中怎么實現一個拍照翻譯小程序,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1 開發準備

??由于使用了云側的服務,需要到華為的開發者聯盟注冊開發者賬號,并且在云端開通這些服務,這里就不細講了,直接按照官方的的AppGallery Connect配置、開通服務部分操作步驟進行即可:

   注冊開發者,開通服務參考請戳:

1.1 在項目級gradle里添加華為maven倉

  打開AndroidStudio項目級build.gradle文件。
Android中怎么實現一個拍照翻譯小程序
??增量添加如下maven地址:

buildscript {
    repositories {        
        maven {url 'http://developer.huawei.com/repo/'}
    }    }allprojects {
    repositories {       
        maven { url 'http://developer.huawei.com/repo/'}
    }
   }

1.2 在應用級的build.gradle里面加上SDK依賴

Android中怎么實現一個拍照翻譯小程序
??集成SDK。(由于使用云側能力,只引入SDK基礎包即可)

dependencies{  
    implementation 'com.huawei.hms:ml-computer-vision:1.0.2.300'
    implementation 'com.huawei.hms:ml-computer-translate:1.0.2.300'
    }

1.3 在AndroidManifest.xml文件里面申請相機和存儲權限

??要使應用程序能夠在用戶從華為應用市場安裝您的應用程序后,自動將最新的機器學習模型更新到用戶設備,請將以下語句添加到該應用程序的AndroidManifest.xml文件中:

<manifest    
   <application  
       <meta-data                     
           android:name="com.huawei.hms.ml.DEPENDENCY"          
           android:value= "imgseg "/>                    
   </application>
</manifest>

1.4 在AndroidManifest.xml文件里面申請相機和存儲權限

<uses-permission android:name="android.permission.CAMERA" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-feature android:name="android.hardware.camera" /><uses-feature android:name="android.hardware.camera.autofocus" />

2 代碼開發關鍵步驟

2.1 動態權限申請

private static final int CAMERA_PERMISSION_CODE = 1; @Override 
public void onCreate(Bundle savedInstanceState) { 
    // Checking camera permission   
   if (!allPermissionsGranted()) {
       getRuntimePermissions();
   }}

2.2 創建云側文本分析器。可以通過文本檢測配置器“MLRemoteTextSetting”創建文本分析器

MLRemoteTextSetting setting = (new MLRemoteTextSetting.Factory()).
         setTextDensityScene(MLRemoteTextSetting.OCR_LOOSE_SCENE).create();this.textAnalyzer = MLAnalyzerFactory.getInstance().getRemoteTextAnalyzer(setting);

2.3 通過android.graphics.Bitmap創建“MLFrame”對象用于分析器檢測圖片

MLFrame mlFrame = new MLFrame.Creator().setBitmap(this.originBitmap).create();

2.4  調用“asyncAnalyseFrame ”方法進行文本檢測

Task<MLText> task = this.textAnalyzer.asyncAnalyseFrame(mlFrame);
            task.addOnSuccessListener(new OnSuccessListener<MLText>() {
                @Override                public void onSuccess(MLText mlText) {
                    // Transacting logic for segment success.
                    if (mlText != null) {
                        RemoteTranslateActivity.this.remoteDetectSuccess(mlText);
                    } else {
                        RemoteTranslateActivity.this.displayFailure();
                    }
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override                public void onFailure(Exception e) {
                    // Transacting logic for segment failure.
                    RemoteTranslateActivity.this.displayFailure();
                    return;
                }
            });

2.5 創建文本翻譯器。可以通過文本翻譯器自定義參數類“MLRemoteTranslateSetting”創建翻譯器

MLRemoteTranslateSetting.Factory factory = new MLRemoteTranslateSetting
                .Factory()
                // Set the target language code. The ISO 639-1 standard is used.
                .setTargetLangCode(this.dstLanguage);
        if (!this.srcLanguage.equals("AUTO")) {
            // Set the source language code. The ISO 639-1 standard is used.
            factory.setSourceLangCode(this.srcLanguage);
        }
        this.translator = MLTranslatorFactory.getInstance().getRemoteTranslator(factory.create());

2.6 調用“asyncAnalyseFrame ”方法對文本識別獲取的內容進行文本翻譯

final Task<String> task = translator.asyncTranslate(this.sourceText);
        task.addOnSuccessListener(new OnSuccessListener<String>() {
            @Override            public void onSuccess(String text) {
                if (text != null) {
                    RemoteTranslateActivity.this.remoteDisplaySuccess(text);
                } else {
                    RemoteTranslateActivity.this.displayFailure();
                }
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override            public void onFailure(Exception e) {
                RemoteTranslateActivity.this.displayFailure();
            }
        });

2.7 翻譯完成釋放資源

if (this.textAnalyzer != null) {
            try {
                this.textAnalyzer.close();
            } catch (IOException e) {
                SmartLog.e(RemoteTranslateActivity.TAG, "Stop analyzer failed: " + e.getMessage());
            }
        }
        if (this.translator != null) {
            this.translator.stop();
        }

上述內容就是Android中怎么實現一個拍照翻譯小程序,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

偏关县| 郓城县| 牡丹江市| 襄樊市| 雅江县| 九龙坡区| 济宁市| 南昌市| 中超| 金昌市| 宁明县| 太谷县| 定安县| 镶黄旗| 宁陵县| 昭通市| 凌海市| 平邑县| 阳春市| 石嘴山市| 新安县| 剑阁县| 崇信县| 瑞丽市| 洛浦县| 开阳县| 昂仁县| 宁强县| 贺州市| 鹤峰县| 卢龙县| 永宁县| 邵阳市| 浙江省| 新河县| 西贡区| 辰溪县| 化隆| 海安县| 长阳| 栾川县|