亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Android > 正文

Android開發(fā)技巧之像QQ一樣輸入文字和表情圖像

2020-04-11 12:32:37
字體:
供稿:網(wǎng)友
EditText和TextView一樣,也可以進(jìn)行圖文混排。所不同的是,TextView只用于顯示圖文混排效果,而EditText不僅可顯示,也可混合輸入文字和圖像,讓我們先回顧一下圖5.2所示的QQ聊天輸入框,在輸入框中可以同時輸入文字和表情圖像。實(shí)際上,這種效果在Android SDK中只需要幾行代碼就可以實(shí)現(xiàn)。為了使讀者更有學(xué)習(xí)的沖動,先來欣賞一下即將實(shí)現(xiàn)的效果,如圖5.16所示。

圖5.16 在EditText控件中輸入文字和圖像
為了實(shí)現(xiàn)這個程序,首先來準(zhǔn)備一些要用到的素材,也就是要在EditText控件中輸入的圖像文件。本例準(zhǔn)備了9個png圖像文件(face1.png至face9.png),都放在了res/drawable目錄中。
接下來在屏幕上放一個只能顯示3行(可輸入多行)的EditText和一個Button,布局文件的代碼如下:
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText android:id="@+id/edittext" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:lines="3" android:gravity="left|top"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="隨機(jī)插入表情"
android:onClick="onClick_RandomFace" android:layout_marginTop="10dp" />
</LinearLayout>

上面代碼的<EditText>標(biāo)簽中將android:gravity屬性值設(shè)為left|top。以使輸入的文本從左上角開始顯示,如果不設(shè)置該屬性,則輸入的文本會從左側(cè)中心位置開始顯示(由于設(shè)置了android:line=”3”,因此,EditText可同時顯示三行的內(nèi)容,所以會存在這個問題,如果只顯示一行,則不存在這個問題)。

<Button>標(biāo)簽的android:onClick屬性值指定了單擊事件方法(onClick_RandomFace),在該方法中隨機(jī)獲得了face1.png至face9.png中任意一個圖像資源的ID。最常用的方法是將這9個圖像資源ID放到數(shù)組中,然后隨機(jī)產(chǎn)生一個數(shù)組索引來獲取相應(yīng)的圖像資源ID。但本例未采用這種方法,而是采用了直接通過反射技術(shù)從R.drawable類中獲得圖像資源ID的方法。這種方法的好處是一但圖像資源非常多時,可以不需要在數(shù)組中挨個定義就可以獲得任意的圖像資源ID。

在5.2.2節(jié)使用了<img>標(biāo)簽來插入圖像,雖然在EditText控件中插入圖像也可采用這種方法。但本例使用了另外一種更簡單的方法,就是使用android.text.style.ImageSpan類來直接插入圖像。下面來看看具體的實(shí)現(xiàn)代碼。
復(fù)制代碼 代碼如下:

public void onClick_RandomFace(View view)
{
// 隨機(jī)產(chǎn)生1至9的整數(shù)
int randomId = 1 + new Random().nextInt(9);
try
{
// 根據(jù)隨機(jī)產(chǎn)生的1至9的整數(shù)從R.drawable類中獲得相應(yīng)資源ID(靜態(tài)變量)的Field對象
Field field = R.drawable.class.getDeclaredField("face" + randomId);
// 獲得資源ID的值,也就是靜態(tài)變量的值
int resourceId = Integer.parseInt(field.get(null).toString());
// 根據(jù)資源ID獲得資源圖像的Bitmap對象
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId);
// 根據(jù)Bitmap對象創(chuàng)建ImageSpan對象
ImageSpan imageSpan = new ImageSpan(this, bitmap);
// 創(chuàng)建一個SpannableString對象,以便插入用ImageSpan對象封裝的圖像
SpannableString spannableString = new SpannableString("face");
// 用ImageSpan對象替換face
spannableString.setSpan(imageSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// 將隨機(jī)獲得的圖像追加到EditText控件的最后
edittext.append(spannableString);
}
catch (Exception e)
{
}
}

編寫上面代碼需要注意如下幾點(diǎn)
1. 由于R.drawable中的資源ID都是public的靜態(tài)變量,因此,可直接使用Field.get方法獲得這些變量的值。如果是private或protected的變量,需要field.setAccessible(true)設(shè)置變量值的訪問權(quán)限才可以讀寫這些變量。
2. 使用Field.get方法獲得變量值時,如果是靜態(tài)變量。Field.get方法的參數(shù)值設(shè)為null即可。如果不是靜態(tài)變量,需要為Field.get方法指定一個變量所在類的對象作為參數(shù)值。
3. 由于EditText類不能直接插入Span對象,因此,需要先使用SpannableString對象來封裝Span對象(如本例中的ImageSpan對象),再將SpannableString對象插入到EditText控件中。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
无码人妻av一区二区三区波多野| 丁香花电影在线观看完整版| 亚洲欧美视频一区二区三区| 成年免费视频黄网站在线观看| 午夜福利一区二区三区| 中文天堂在线播放| 亚洲欧美日本视频在线观看| 欧美专区在线观看一区| 日本特黄一级片| 少妇人妻一区二区| 爱啪导航一精品导航站| 在线欧美三级| 国际av在线| 欧美人与物videos另类xxxxx| 日本久久伊人| 欧美污视频久久久| 欧美唯美清纯偷拍| 久久影视一区| 国产偷激情在线| aaa一级黄色片| 在线免费国产| 国产成人免费9x9x人网站视频| 国产大片在线观看| 亚洲自拍另类综合| 亚洲小说欧美另类社区| 日韩欧美在线视频| 久久久久久国产精品| 日本一区二区三级电影在线观看| 欧洲在线视频| 天堂网中文在线| av网站在线播放| 91九色视频蝌蚪| 色婷婷av一区二区三区大白胸| 国产精品91一区| 国产又粗又猛又爽又黄91| 国产97在线播放| 国产精品亚洲美女av网站| 一区二区三区不卡视频| 日本激情在线观看| 国产成人亚洲综合a∨婷婷| 成人h动漫精品一区二| 亚洲国产日韩精品在线| 深夜做爰性大片蜜桃| 久久久久久无码午夜精品直播| 成人av影视| 春意影院午夜免费入口| 欧美a在线观看| 欧美最猛性xxxxx直播| 欧美+亚洲+精品+三区| 日日夜夜网站| 精品福利一区二区三区免费视频| 在线观看免费91| 亚洲中文字幕无码不卡电影| 欧美激情一级二级| 亚洲欧洲日韩在线| 国产精品合集一区二区| 久久av一区二区| 欧洲成人午夜精品无码区久久| 国产男女猛烈无遮挡| 欧美精品网站| 可以直接看的黄色网址| 极品尤物av丝袜美腿在线观看| 国产在线看片免费视频在线观看| 久久免费视频精品| 136福利视频| 久久av资源网站| 中文字幕中文在线不卡住| 亚洲综合婷婷| 秘密基地免费观看完整版中文| 欧美性xxxx极品hd欧美| 欧美在线|欧美| 久久国产婷婷国产香蕉| 欧美特级黄色录像| 日本一区高清在线视频| 亚洲ⅴ国产v天堂a无码二区| 性少妇xx生活| 国产第100页| 国产精品一区二区av白丝下载| yiren22亚洲综合伊人22| 国产大屁股喷水视频在线观看| 欧美三级韩国三级日本一级| 欧美韩日国产| 黄色国产在线播放| 久久久久久久香蕉| 国产精品久久久久久超碰| 免费午夜一级| 黄色小视频在线免费看| 久久免费视频66| 欧美日韩国产一区二区三区不卡| 欧美日本在线观看| www免费在线观看| 人妻91麻豆一区二区三区| 色呦呦在线看| 一二三区精品| 欧美xxxx18国产| 青青在线观看视频中文字| 免费观看国产视频在线| 手机看片久久久| 亚洲v日韩v综合v精品v| 欧美日韩美女一区二区| 欧美一区二区三区综合| 怡红院在线播放| 久久男人天堂| 人妻少妇偷人精品久久久任期| 国产伦精品一区二区三区千人斩| 亚洲18在线| 成人国产精品av| 日本激情视频在线观看| 亚洲自拍高清视频网站| 国产一级视频在线播放| 亚洲一区美女视频在线观看免费| 欧美午夜免费| 一个人看的www一区| 无码一区二区三区视频| 亚洲a级在线播放观看| 天天色天天草天天射| 视频在线不卡| 国产精品久久久久久久午夜| 95影院理论片在线观看| 欧美大香线蕉线伊人久久国产精品| 香蒸焦蕉伊在线| 狂野欧美性猛交| 亚洲1区在线观看| 91极品女神私人尤物在线播放| 亚洲视频www| 激情成人四房播| 国产一区免费观看| 制服丝袜成人动漫| h视频在线免费观看| 99免费精品| 久久精品无码一区二区三区毛片| 97在线观看免费高清视频| 欧美激情视频一区二区三区免费| 天堂视频在线| 亚洲免费激情视频| 欧美激情在线狂野欧美精品| 久久午夜宅男免费网站| av免费高清观看| 亚洲精品综合在线观看| 国产精品欧美在线观看| 久久超级碰碰| 99在线视频观看| 伊人成人222| 国产精品扒开腿做| 国产精品剧情一区二区在线观看| 亚洲性感美女99在线| 欧美亚洲国产日韩| 性感女国产在线| 色综合一个色综合亚洲| 欧美日韩视频免费在线观看| 在线观看日韩电影| 色综合网站在线| 高清av中文在线字幕观看1| 99在线精品观看| 色狠狠色噜噜噜综合网| 91精彩视频在线观看| 日本免费一区二区三区视频观看| 中文在线字幕免费观看| 中文产幕区在线观看| 在线观看自拍| 日本人妖在线| 日韩一区欧美| 91精品美女在线| 国产精品爱久久久久久久| 成人国产精品一区二区| 色哟哟网站在线观看| 亚洲精品一线二线三线| 久久精品视频亚洲| 欧美视频在线免费播放| 女人被狂躁到高潮视频免费网站| www..com久久爱| 天天综合精品| 97人妻一区二区精品视频| 精品午夜一区二区三区| 在线三级av| 久久久一区二区三区四区| 免费三片60分钟| 亚洲国产日韩欧美综合久久| 四虎成人免费影院| 国产精品一卡二| 老太做爰xxxx| 亚洲最大福利网站| 天天干在线播放| 成人永久在线| 成人做爰www看视频软件| 国产精品一区二区免费福利视频| 9色在线视频网站| 麻豆av免费在线观看| 最近中文字幕在线mv视频在线| 亚洲色图偷拍自拍| 久久另类ts人妖一区二区| 最近中文字幕mv免费高清在线| 欧美日韩国产bt| 911国产在线| 亚洲精品国偷拍自产在线观看蜜桃| 亚洲天堂手机| 国产不卡视频一区| 99精品人妻无码专区在线视频区| 国产乱xxⅹxx国语对白| 精品日韩99亚洲| gogogo免费高清日本写真| 免费一级片视频| 日本高清不卡一区二区三| 午夜精品久久99蜜桃的功能介绍| 97精品人妻一区二区三区| 日韩中文字幕不卡| 国产精品丝袜黑色高跟鞋| 91亚洲精品国产| 天堂8中文在线最新版在线| 日韩免费成人av| 国产午夜在线| 国产三级在线免费观看| 黄色av网站在线观看| 蜜桃av久久久亚洲精品| 国内揄拍国内精品| 国内精品久久久久久不卡影院| 国产精品电影在线观看| 少妇性饥渴无码a区免费| 久久伊人精品| 污视频在线免费观看网站| 久久综合色一综合色88| 亚洲美女视频一区| 欧美另类69精品久久久久9999| 亚洲国产一区二区在线播放| 国产成人av电影免费在线观看| 日本一区二区高清视频| 91在线视频免费| 国产精品久久久久久久牛牛| 调教视频vk| 日韩美女福利视频| 国产欧美久久久精品免费| 男人添女人荫蒂国产| 日本加勒比高清在线| 99久久99九九99九九九| 麻豆91在线播放免费| 欧美一区二区日韩一区二区| 精品无人区乱码1区2区3区在线| 国产一区二区网址| 97人摸人人澡人人人超一碰| 精品电影一区二区三区| 农村一级毛片| 亚洲www永久成人夜色| 国产不卡一区二区在线播放| 国产成人精品国内自产拍免费看| 亚洲sss综合天堂久久| 日韩视频二区| 91免费国产视频网站| 日韩中文字幕网站| 亚洲精品国产精品国自产在线| 91精品福利在线一区二区三区| 激情懂色av一区av二区av| 天堂√在线中文官网在线| 免费在线观看视频a| 国产亚洲精品激情久久| 哺乳一区二区三区中文视频| 欧美日日夜夜| 首页国产欧美久久| 国产精品福利在线| 精品国产成人在线| 欧美日韩国产首页在线观看| 最近中文字幕mv第三季歌词| 综合成人在线| 国产综合第一页| 亚洲专区在线| 在线成人亚洲| 神马影院一区二区| 中文字幕在线免费看| 第一会所亚洲原创| 特级西西444www大精品视频| www.久色| av在线免费观看国产| 中文字幕在线中文字幕二区| chinesespank调教| 成人亚洲精品久久久久软件| 日韩欧美大片在线观看| 成人羞羞在线观看网站| 久久久久亚洲av无码a片| 中文字幕一区久久| 一区二区免费在线| 爱爱免费小视频| 日韩免费成人网| 在线中文字幕第一页| 国产精品永久入口久久久| 成人免费网址| 黄色av网站免费观看| 国产免费区一区二区三视频免费| 日韩禁在线播放| 92国产精品观看| 亚洲精品日产| 这里只有久久精品视频| 国产毛片av在线| 成人高清在线观看视频| 欧美色图首页| 奇米精品一区二区三区在线观看一| 成人欧美一区二区三区| 性做久久久久久免费观看| 欧美午夜电影在线观看| 视频在线观看一区| www.激情小说.com| mm131丰满少妇人体欣赏图| 成人免费黄色小视频| 欧美精品一级二级三级| 亚洲国产一区二区在线| 韩日一区二区三区| 亚洲免费资源在线播放| 国产中文字幕在线免费观看| 德国一级在线视频| 欧美特黄一级片| 青椒成人免费视频| 亚洲三级在线看| 欧美日韩国产片| 色dvdxxx| 午夜电影网亚洲视频| 中文字幕资源网在线观看免费| 欧美精品色婷婷五月综合| 特一级黄色大片| 午夜国产福利视频| 日韩系列在线| 女女色综合影院| 琪琪亚洲精品午夜在线| 亚洲国产综合在线看不卡| 欧美日韩一区综合| 亚洲精品鲁一鲁一区二区三区| 日韩电影中文字幕| 国产精品国产三级国产普通话蜜臀| 先锋影音一区二区三区| 久久久久久久久久久久久久久久久久久| 亚洲理论电影在线观看|