android 手机翻译

这篇博客详细介绍了如何在Android平台上实现手机翻译功能,通过Sample9_6_Activity.java源代码示例,展示了集成翻译API和处理用户输入的步骤,帮助开发者理解如何在Android应用中构建翻译功能。


Sample9_6_Activity.java:

package com.bn.chap9.translate;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.EditText;
public class Sample9_6_Activity extends Activity {
	EditText et;
	WebView wv;
	Handler hd = new Handler();
	@Override
	public void onCreate(Bundle savedInstanceState){ 
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.main);
	    et = (EditText) findViewById(R.id.myEditText1);
	    wv = (WebView) findViewById(R.id.myWebView1);
	    WebSettings webSettings = wv.getSettings();//取得WebSettings 
	    webSettings.setJavaScriptEnabled(true);//设定可执行JavaScript
	    wv.addJavascriptInterface(this, "irdc");//设定给html调用的对象及名称
	    String url = "file:///android_asset/google_translate.html";//载入assets/google_translate.html 
	    wv.loadUrl(url);
	}
	/* 2 该过程由“翻译”按钮触发*/
	public void runJavaScript(){
	      hd.post(new Runnable(){
	        public void run(){
	        	String str=et.getText().toString().trim();
	          if(str.length()!=0){
	            wv.loadUrl("javascript:translate('"//调用google_translate.html里的javascript
	                + str+ "')");
	          }}});
	}
}

google_translate.html:

<html>
<head>
  <meta 
  http-equiv="Content-Type" 
  content="text/html; charset=GB2312" />
</head>
<script type="text/javascript" src="http://www.google.com/jsapi">
</script> 

<!-- 4 该函数由3调用 -->
<script type="text/javascript">
    google.load("language", "1");
    function mytranslate(strInput,target)
    {
      try
      {
        google.language.translate
        (strInput, "", "zh-TW", function(result)
        {
          if (!result.error)
          {
            document.getElementById(target).innerHTML
            =result.translation;
          }
          else
          {
            google.language.translate
            (strInput, "en", "zh-TW", function(result)
            {
              if (!result.error)
              {
                document.getElementById(target).innerHTML
                =result.translation;
              }
              else
              {
                document.getElementById(target).innerHTML
                =result.translation;
              }
            });
          }
        });
      } 
      catch(e)
      {
        alert("Error is:"+e);
      }
    }
</script>

<!-- 3  该步骤由2 触发 -->
<script language="javascript">
function translate(strTranslate)
{
    alert(strTranslate);
    mytranslate(strTranslate, "showDiv");
    alert("Done!");
}
</script>
<body>
  <p align="center">
  <!-- 1  按钮是第一步 -->
  <input type="button" value="翻译" onClick="window.irdc.runJavaScript()">
  </p>
 <!--  5 该显示控件由4实现后的翻译结果 -->
  <div id="showDiv" 
  style="text-align:center;font-size:18pt; 
  padding-left:5px; padding-right:5px; 
  padding-top:2px; padding-bottom:2px">
  </div>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值