知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
表情的發(fā)送,展示,粘貼與刪除
發(fā)表時(shí)間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):47
比來(lái)我也在做插入神情的功能,網(wǎng)上有很多關(guān)于神情的應(yīng)用的材料,然則大年夜部分材料都是缺胳膊少腿的。參考了網(wǎng)上的一些例子,我做了一個(gè)比較完美的demo分享給大年夜家,當(dāng)然這個(gè)demo也存在一些優(yōu)化問題,有興趣的人持續(xù)優(yōu)化它。我已經(jīng)把項(xiàng)目源代碼開源在我的github上,https://github.com/arjinmc/FaceDemo
網(wǎng)上很多例子是以數(shù)組的情勢(shì)去存儲(chǔ)我們的神情鍵值對(duì),然則實(shí)際項(xiàng)目中并不會(huì)用這種模式,因?yàn)檫@種模式擴(kuò)大性太差。于是我用的是文件的模式去存取,依然是類似的確對(duì)應(yīng)的關(guān)系去存?。篬神情字符]===圖片名稱。
做這個(gè)功能還有兩個(gè)重要的控件,必須重寫。如不雅不重寫的話,須要寫大年夜量的代碼,分別對(duì)TextView和EditText重寫。
在TextView中重要重寫setText()
@Override publicvoidsetText(CharSequence text, BufferType type){ SpannableString spannableString = new SpannableString(text); spannableString = FaceUtil.getExpressionString(getContext(),spannableString.toString()); super.setText(spannableString, type); }
這個(gè)是用來(lái)展示神情的重要代碼,同樣在EditText中也須要重寫這個(gè)辦法,代碼雷同。初次之外還須要重寫一個(gè)對(duì)文本的┞煩貼的動(dòng)作監(jiān)聽,大年夜而可以做搗⒕貔神情。
@Override publicbooleanonTextContextMenuItem(int id) { if (id == android.R.id.paste) { ClipboardManagerclipboard= (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); String value = http://www.sjsjw.com/100/000134MYM007459/clipboard.getText().toString(); Editable edit = getEditableText(); int cursorSelect = getSelectionStart(); edit.insert(cursorSelect, FaceUtil.getExpressionString(getContext(),value)); return true; } return super.onTextContextMenuItem(id); }
還有就是刪除神情,在很多大年夜牌應(yīng)用中,刪除神情的按鈕平日都邑放在神情堆瑯綾擎,這個(gè)刪除按鍵還可以充當(dāng)軟鍵盤的刪除鍵,也就是既可以刪除單個(gè)字符也可以刪除單個(gè)神情。我是如許寫的。
/** * @usage刪除editetext上的字符串或者神情 * @author eminem * @email [email protected] * @website arjinmc.com * @create 2014年12月26日 */ private void deleOneString(){ int edittextCursor = edittext.getSelectionStart(); Editableeditable= edittext.getText(); StringtempString= edittext.getText().toString().substring(0,edittextCursor); int end = tempString.lastIndexOf("]"); if(end==edittextCursor-1){ int start = tempString.lastIndexOf("["); if(start!=-1){ editable.delete(start, edittextCursor); }else if(edittextCursor!=0){ editable.delete(edittextCursor-1, edittextCursor); } }else if(edittextCursor!=0){ editable.delete(edittextCursor-1, edittextCursor); } }
還有一個(gè)重點(diǎn),怎么去斷定是拔取了神情照樣點(diǎn)擊了刪除鍵。我會(huì)給刪除鍵定義一個(gè)常量用來(lái)表示是這個(gè)是刪除,當(dāng)點(diǎn)擊神情的事宜觸發(fā)的時(shí)刻,我應(yīng)用了handler去傳遞這個(gè)消息,當(dāng)界面接收到這個(gè)消息的時(shí)刻,則對(duì)其響應(yīng)處理。代碼在github膳綾擎很完全,有興趣可以下載來(lái)看看。
[email protected] 這個(gè)郵箱還會(huì)持續(xù)用,隨便給我發(fā)哪個(gè)。迎接騷擾。
相關(guān)案例查看更多
相關(guān)閱讀
- 小程序的開發(fā)公司
- 云南網(wǎng)頁(yè)制作
- 人口普查小程序
- 高端網(wǎng)站建設(shè)公司
- 云南小程序開發(fā)制作公司
- 云南網(wǎng)絡(luò)營(yíng)銷
- 云南網(wǎng)站建設(shè)首選公司
- 網(wǎng)站排名
- 小程序表單
- 開通微信小程序被騙
- 網(wǎng)站建設(shè)專家
- 正規(guī)網(wǎng)站建設(shè)公司
- 表單
- 云南網(wǎng)站開發(fā)哪家好
- 網(wǎng)站建設(shè)招商
- 汽車報(bào)廢拆解管理系統(tǒng)
- 小程序用戶登錄
- 小程序定制
- 網(wǎng)站制作哪家好
- 云南軟件開發(fā)
- 搜索引擎排名
- 小程序定制開發(fā)
- 微分銷
- 百度推廣
- 快排推廣
- 云南小程序開發(fā)首選品牌
- 云南小程序定制
- 小程序開發(fā)費(fèi)用
- 網(wǎng)站建設(shè)選
- 模版消息