AndroidDev 板


LINE

※ 引述《k11926 (ki)》之铭言: : 开发层: (应用/框架/库/核心) : 问题: : 上次解决了edittext键盘的问题後,持续我的进度,就是翻译啦,想要做到的效果是,一 : 篇文章可以让使用者选取文字(英文)後,可以进行翻译的动作,用google translate可以 : 做到翻译 : 但是没有办法直接选取完就可以显示在webview里面,一定要现选取文字,然後 : 长按(或是另外放一个button)选取的文字後,再按下webview中的文字呼叫,才有办法 : 翻译,不知道有没有什麽比较好的翻译方法呢? : 希望是可以直接选取完文字以後,点选选取的范围,就可以翻译的功能 我的方法有两种 第一种是透过浏览器连上google翻译, 优点: 简单,只需要写出android程式即可 缺点: 很慢 第二种是自己用javascript透过google api写一支翻译程式 优点:速度快 缺点:必须学一下Javascript, 我试着写第一种方法,结果真的很慢= = 程式码(片段): import com.google.api.translate.Language;//必须下载google translate的api import com.google.api.translate.Translate; ... editText = (EditText)findViewById(R.id.EditView01); editText.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View view, MotionEvent motion) { try{ String subSelectStr = ""; if(editText.getSelectionStart()<=editText.getSelectionEnd()){ subSelectStr = (editText.getText(). subSequence(editText.getSelectionStart(), editText.getSelectionEnd())).toString(); } else{ subSelectStr = (editText.getText(). subSequence(editText.getSelectionEnd(), editText.getSelectionStart())).toString(); } ClipboardManager clipboard = (ClipboardManager)getSystemService( Context.CLIPBOARD_SERVICE); clipboard.setText(subSelectStr); String pasteData = clipboard.getText().toString(); Translate.setHttpReferrer( "/*Enter the URL of your site here*/"); String strTranslatedText = Translate.execute(pasteData, Language.ENGLISH, Language.CHINESE_TRADITIONAL); Toast.makeText(mContext, strTranslatedText, Toast.LENGTH_SHORT).show(); } catch(Exception e){ e.printStackTrace(); } return false; } }); 稍微解释一下, 首先我宣告一个EditText来存放原po所说的文章, 为了方便示范,所以我就放了一个英文单字,apple作为初始的文章, 然後利用xml将editText的属性设为editable=false, 当使用者长按editText的时候,选择select text模式, 然後进行选取,当选完放开手指的时候, 就会把文字贴入Clipboard,然後再从Clipboard里面取出, 丢去google translate线上查询, 查完的结果会利用Toast显示出来 。 如果一开始所说的,会非常慢,不知道是因为我网路问题, 还是真的会很慢, 还是建议利用第二种方法,写一支javascript吧! 补上程式码 http://uploadingit.com/file/whpf92ve9ean12ne/TestAndroidWebView.zip --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.221.115.4
1F:推 ericinttu:有解有推 07/18 17:18
2F:推 k11926:哇~~谢谢解答,第一种方我目前在尝试,的确是有一些慢 07/19 06:20
3F:→ k11926:但网路速度好像有差,因为在学校就快一些,改天来研究你说 07/19 06:22
4F:→ k11926:的第二种方法,真是太谢谢你罗 07/19 06:22
※ 编辑: givemepass 来自: 61.221.115.4 (07/19 09:54)
5F:推 k11926:但我有问题了,我不知道localhost是什麽? 07/19 11:02
6F:推 k11926:然後我用你的程式码开起来会有错误耶,载入的API有问题 07/19 11:05
7F:→ givemepass:你要把GOOGLE API ADD进去ECLIPSE 07/19 11:49
8F:→ givemepass:localhost就是你的主机位址 07/19 11:49
9F:推 k11926:我Load进去 但是他一直说错误耶 07/19 13:53
10F:→ givemepass:你试着把bin里面的apk install到你的android系统里 07/19 14:43
11F:→ givemepass:跑看看 07/19 14:43
12F:推 k11926:http://ppt.cc/HNQe 喔喔我上传我档案了 我现在想要让他 07/19 15:15
13F:→ k11926:一选到字长按 webview就会显示翻译 不需要再按webview里面 07/19 15:16
14F:→ k11926:的连结 但一直试不出来 真是感谢你超有耐心 07/19 15:17







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP