logo资料库

android系统在线翻译实例+源代码.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
htt
文章地址上
android 在线翻译软件
http://www.ways2u.com/?post=183 文章地址上 android 在线翻译软件 filed in android post by onelong on2010-7-21 21:19 Wednesday Android 在近几年得到了千千万万的开发者和移动厂商的一致好评。Android 承诺开源,秉承了 Google 的一贯作风,开源为移动生产商节约了成本。当然单靠节约成本是不够的,Android 系统 是一个具有丰富用户体验的手机平台或移动平台,不仅让用户赏心悦目享受到她提供的 music、 影视、摄影和互联网等丰富的多媒体冲击。如果只有这些,android 怎可能流行起来呢?所以 android 还针对开发者提供了十分丰富的编程接口(api)极其简单地复杂的应用,正因为 android 对开发者的万般呵护,以致万千开发者热情地投入了 android 的怀抱,当然我也是其中一个,废 话就不多说了!借助“首届 Google 暑期大学生博客分享大赛——2010 Andriod 篇”的机会分享 android 可爱之美吧!下面以在线翻译软件为例子,带大家体验 android 开发的无穷乐趣吧! 我的英语不怎么好,平时都是依靠电脑上翻译工具完成作业,可是电脑太臃肿了,于是我有了一 个异想天开的想法,自己做一个手机翻译软件!DIY,会不会太难了,也许在别的手机系统上, 这个的确好难!但是 android 不一样!开发 android 应用简单到让你惊讶….. 开发这个软件的思路:本人比较擅长 javascript,对 Google api 比较了解,所以想借助 Google 翻 译 api 结合 webView 来实现! 参考网站:http://code.google.com/intl/zh-CN/apis/ajaxlanguage/documentation/ google.language.translate(text|option, srcLang, destLang, callback) 至于 webView 的介绍,大家可以参考 android docs 哈哈,不废话了,下面做第一件事,规划简洁而不单调的用户界面,代码如下: Layout/main.xml
android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="right" > < TextView android:layout_marginTop="10px" android:id="@+id/l_select" android:layout_width="fill_parent" android:layout_height="wrap_content" />
public class TranslationOnline extends Activity { private TextView tips; private EditText editText; private WebView webView; private String[] chooseStr={"简体中文->英语","英语->简体中文"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webView=(WebView)findViewById(R.id.toutput); final Button submit=(Button)findViewById(R.id.submit); editText=(EditText)findViewById(R.id.tinput); tips=(TextView)findViewById(R.id.tips); final Spinner l_select=(Spinner)findViewById(R.id.l_select); ArrayAdapter adapter=new ArrayAdapter(this, android.R.layout.simple_spinner_item,chooseStr);//配置一个适 配器 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropd own_item); l_select.setPrompt("请选择翻译的方式"); l_select.setOnItemSelectedListener(new OnItemSelectedListener() { @Override
public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) { } @Override public void onNothingSelected(AdapterView arg0) { } }); l_select.setAdapter(adapter); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setSaveFormData(false); webSettings.setSavePassword(false); webSettings.setSupportZoom(false); submit.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); } }); } } 上面都是很普通的代码,故不作注释了!现在我为大家揭开界面之谜吧!
界面的确简洁了点! 这个软件最核心的部分就是使用 Google 翻译 API。下面还是先介绍下怎样实现 webview 和 html 的交换吧!webView.loadUrl(url);方法可以打开一个 url 或本地 html,相信这个大家都知道!那么 怎样实现交互呢?如果你装饰过 QQ 空间的话,你一定知道在当前网页的地址栏上填入 javascript:translate()就可以调用当前页面的 javascript 的 translate()函数!这样一来,问题就简单 多了,我知道很多人会选择 webserver 来实现翻译!但是那些太复杂了,而且浪费手机资源!看 看 html 代码先吧! Assets/ cn2en.html
更详细的参考 http://code.google.com/intl/zh-CN/apis/ajaxlanguage/documentation/ google.language.translate(text|option, srcLang, destLang, callback)这个 API 实现翻译功能!我也不 多说了,参考官方的文档更有意思,而且看官方的开发文档这是每一个开发者的好习惯,更是超 越现实,突破自己的最好方式,也是我说得太夸张了,我还是强调看文档的重要性! Android 中实现多线程有很多方法的,如实现 Runnable 接口,扩展线程类或者 Handler 下面看看完整的代码吧:
package com.hl.translationonline; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebSettings; import android.webkit.WebView; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; import android.widget.AdapterView.OnItemSelectedListener; public class TranslationOnline extends Activity { private TextView tips; private EditText editText; private WebView webView; private String[] url = {"file:///android_asset/cn2en.html", "file:///android_asset/en2cn.html"};//这里我是分开两个页面实现 翻译模式简体中文->英语和英语->简体中文的,当然你也可以用个文件来实现,不过要改写函 数, private String[] chooseStr={"简体中文->英语","英语->简体中文"};//翻译模 式设定,本示例只是实现了英语和中文之间的转译,其实你还可以实现多国语言翻译的!这是留 给读者去思考吧!
分享到:
收藏