要使用Google服务,在建项目时就要选择Google API作为基础库,现有的版本为1.5和1.6,按常理是选用1.5,经过我的测试,用1.5写出的程序,在1.1和1.6下都能正常运行,但是用1.6写出的程序,在1.1下兼容性并不那么好。

下面就来看一下assets下的页面代码:
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("language", "1");
function google_translate(strInput,targetDIV) {
try {
google.language.translate(strInput, "", "zh-CN", function(result) {
if (!result.error) {
window.demo.runOnAndroidJavaScript(result.translation);
}
else {
google.language.translate(strInput, "en", "zh-CN", function(result) {
if (!result.error) {
window.demo.runOnAndroidJavaScript(result.translation);
}
else {
window.demo.runOnAndroidJavaScript(result.translation);
}
});
}
});
}
catch(e) {
alert("google_translate Error:"+e);
}
}
function translate(strTranslate) {
google_translate(strTranslate, "showDiv");
}
</script>
<body><div id="showDiv"></div></body>
</html>

主要就是加载Google API的一个js文件,然后调用其中的翻译方法。
其中demo.runOnAndroidJavaScript()是写在后台代码中的一个回调,相当于对window对象作了一个external处理,这样可以让js调回到后台的代码。

后台的代码如下:

public class OnlineTranslate extends Activity implements OnClickListener {
private EditText edt;
private TextView tv;
private Button btnGo;
private WebView wv;
private Handler h = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
edt = (EditText) findViewById(R.id.edt);
btnGo = (Button)findViewById(R.id.btnGO);
wv = (WebView) findViewById(R.id.wv);
btnGo.setOnClickListener(this);
tv = (TextView)findViewById(R.id.tv);
wv.setVisibility(View.INVISIBLE);
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setSaveFormData(false);
webSettings.setSavePassword(false);
webSettings.setSupportZoom(false);
wv.addJavascriptInterface(new runJavaScript(), "demo");
String url = "file:///android_asset/google_translate.html";
wv.loadUrl(url);
}

final class runJavaScript {
public void runOnAndroidJavaScript(final String txt) {
h.post(new Runnable() {
public void run() {
tv.setText(txt.toString());
}
});
}
}
@Override
public void onClick(View v) {
if (edt.getText().toString() != "") {
wv.loadUrl("javascript:translate('" + edt.getText().toString() + "')");
}
}
}

上面的代码中,wv.addJavascriptInterface(new runJavaScript(), "demo");这一句就是注册external了,
当然你需要在界面上放一个WebView,用来接收这一页面

最后就是配置权限了,程序需要访问网络,必须给它这一许可
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

google在线翻译一相关推荐

  1. Google在线翻译(WinForm版)

    最近闲的无事,写了一个Google在线翻译的WinForm版,里面用到了webbrowser空间,本来是不想用这个空间的,但是直接POST提交数据上去,没办法得到返回信息,返回的信息一直为空,很是郁闷 ...

  2. Translatium for Mac(Google在线翻译工具)

    Translatium,谷歌翻译客户端 Translatium for Mac是一款Mac上强大的翻译软件,支持150多种语言和方言,支持语言输入翻译,文本翻译,并且支持相机翻译语言,Translat ...

  3. Delphi2010 的Google在线翻译

    Delphi的Google在线翻译 在Delphi 2010的IDE设置可参考: 附:DelphiGoogle翻译API 转载于:https://www.cnblogs.com/tulater/arc ...

  4. 利用Google在线翻译引擎制作自己的多国语言翻译机

    本文介绍如何利用Google在线翻译引擎来制作自己的多国语言翻译器.本程序利用Google的在线翻译引擎实现汉语到英语,英语到汉语,英语到日语的单词,整句的翻译.因为是在命令行运行,不支持/n,不能对 ...

  5. (转)利用Google在线翻译引擎制作自己的多国语言翻译机

    出处:http://www.blogjava.net/ekinglong/archive/2006/11/12/80704.html?Pending=true#Post 本文介绍如何利用Google在 ...

  6. Google在线翻译工具:Translatium for Mac支持big sur

    Translatium,谷歌翻译客户端 Translatium for Mac是一款Mac上强大的翻译软件,支持150多种语言和方言,支持语言输入翻译,文本翻译,并且支持相机翻译语言,Translat ...

  7. Translatium for Mac(Google在线翻译工具)的使用说明

    Translatium,谷歌翻译客户端 Translatium for Mac是一款Mac上强大的翻译软件,支持150多种语言和方言,支持语言输入翻译,文本翻译,并且支持相机翻译语言,Translat ...

  8. google在线翻译二

    Android在近几年得到了千千万万的开发者和移动厂商的一致好评.Android承诺开源,秉承了Google的一贯作风,开源为移动生产商节约了成本.当然单靠节约成本是不够的,Android系统是一个具 ...

  9. 一些具非常有用源代码分享(百度指数破解(最新版),NDIS实现类似P2P终结者功能代码,GOOGLE在线翻译等等)

    最近自己要去深圳,开始人生的第二份工程,所以整理以前自己写过的小玩意代码(跟自己工作的代码无关),自己下班回家写的代码,准备卸载简历里面去求职.代码风格自己有注意,但还是每次看自己以前写的代码就感觉是 ...

最新文章

  1. 谷歌为雇人监听智能助手录音辩护 承诺对用户数据泄露进行调查
  2. 探索 MongoDB--转
  3. Spock Primer 翻译
  4. 利用python进行数据分析——第13章 python建模库介绍
  5. PRML中文版(马春鹏)勘误表
  6. 文献查找网站集合(自用)
  7. Linux执行fastqc报错Exception in thread “main“ java.awt.HeadlessException: No X11 DISPLAY variable was s
  8. [20151014]关于result cache.txt
  9. CAD中把样条曲线改成多线段
  10. 31-管家婆家庭记账软件
  11. 微信小程序实现滑动布局
  12. (简历来自拉勾)H5前端工程师:
  13. 无线中继后要不要关闭dhcp服务器,tplink无线路由器WDS桥接后副路由开启DHCP 好还是关闭好。...
  14. oracle启动报错ora11157,ORA-20011 KUP-11024 外部表引起的错误
  15. 超级表格全新升级,这些功能你不可能在其他软件上看到
  16. 获取windows锁屏壁纸
  17. DJL-Java开发者动手学深度学习之线性回归
  18. 华为p30鸿蒙系统内测在哪申请,华为自研操作系统:已注册“华为鸿蒙”商标
  19. 区块链会与io域名有什么关系
  20. libevent库bufferevent事件实现socket通信

热门文章

  1. java 插件11.45.2.14_IntelliJ IDEA 2020.2.4款 神级超级牛逼插件推荐
  2. Wine 的安装和配置,以及wine下运行金山词霸和中文输入法!(转)
  3. constructed play combin all by own
  4. C语言从长整形中提取偶数,编程将长整型数中每一位上为偶数的书依次取出组成一个新的输...
  5. CSS文本与字体知识梳理
  6. 看《prison break》(越狱)体会项目管理
  7. 怎么下载python3.6.0_python
  8. 记录:配置tf-openpose环境爬过的那些坑
  9. python爬虫爬取数据遇到的问题
  10. ADDS数据无损分区工具