【移动应用开发技术】Android中怎么实现一个拍照翻译小程序_第1页
【移动应用开发技术】Android中怎么实现一个拍照翻译小程序_第2页
【移动应用开发技术】Android中怎么实现一个拍照翻译小程序_第3页
【移动应用开发技术】Android中怎么实现一个拍照翻译小程序_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】Android中怎么实现一个拍照翻译小程序

本篇文章为大家展示了Android中怎么实现一个拍照翻译小程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  由于使用了云侧的服务,需要到华为的开发者联盟注册开发者账号,并且在云端开通这些服务,这里就不细讲了,直接按照官方的的AppGalleryConnect配置、开通服务部分操作步骤进行即可:  

注册开发者,开通服务参考请戳:1.1在项目级gradle里添加华为maven仓  打开AndroidStudio项目级build.gradle文件。  增量添加如下maven地址:buildscript

{

repositories

{

maven

{url

'/repo/'}

}

}allprojects

{

repositories

{

maven

{

url

'/repo/'}

}

}1.2在应用级的build.gradle里面加上SDK依赖  集成SDK。(由于使用云侧能力,只引入SDK基础包即可)dependencies{

implementation

'com.huawei.hms:ml-computer-vision:00'

implementation

'com.huawei.hms:ml-computer-translate:00'

}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

(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论