国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android仿英語流利說取詞放大控件的實現方法(附demo源碼下載)

2020-04-11 10:49:14
字體:
來源:轉載
供稿:網友

本文實例講述了Android仿英語流利說取詞放大控件的實現方法。分享給大家供大家參考,具體如下:

1 取詞放大控件

英語流利說是一款非常幫的口語學習app,在app的修煉頁面長按屏幕,會彈出一個放大鏡,當手指移到某個單詞的附近,可以看到該英文單詞會被選中,效果如下圖所示:

2 代碼示例

該控件挺有意思,于是我寫了個簡單的demo,完整實例代碼點擊此處本站下載。,程序運行后的效果如下:

3 實現原理

該控件的實現原理比較簡單,下面介紹幾個比較重要的類

① WordView

在實習該控件的過程中,我發現看似普通的TextView,其功能異常的強大,TextView的源碼值得研究。WordView的主要功能是根據touch的位置,選擇其附近的單詞,然后更改選中單詞的顏色,關鍵代碼如下:

public void trySelectWord(MotionEvent event) {  Layout layout = getLayout();  if (layout == null) {    return;  }  int line = layout.getLineForVertical(getScrollY() + (int) event.getY());  final int index = layout.getOffsetForHorizontal(line, (int) event.getX());  Word selectedWord = getWord(index);  if (selectedWord != null) {    mSpannableString.setSpan(mForegroundColorSpan,        selectedWord.getStart(), selectedWord.getEnd(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);    setText(mSpannableString);    mSelectedWord = getText().subSequence(selectedWord.getStart(), selectedWord.getEnd()).toString();    mOnWordSelectListener.onWordSelect();  }}

② ExercisePanel

該控件主要用來顯示放大鏡,原理比較簡單,就不介紹了。

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android資源操作技巧匯總》《Android開發入門與進階教程》、《Android控件用法總結》、《Android短信與電話操作技巧匯總》及《Android多媒體操作技巧匯總(音頻,視頻,錄音等)

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 承德市| 富宁县| 积石山| 隆化县| 新沂市| 清远市| 高尔夫| 开远市| 龙胜| 寿宁县| 大埔区| 老河口市| 新巴尔虎右旗| 黎平县| 彩票| 红桥区| 乌拉特中旗| 平谷区| 邢台县| 邢台市| 青海省| 车致| 濮阳市| 佳木斯市| 甘肃省| 芒康县| 拜泉县| 东乌| 遵义市| 河南省| 铜梁县| 昌图县| 东宁县| 会理县| 曲沃县| 芜湖县| 勃利县| 长武县| 平武县| 光山县| 清苑县|