Android之一分鐘完成發表情功能
應用背景
不知道大家是否開發過類似朋友圈,論壇之類的功能。通常在這個過程中我們要有發表情的需求。LZ當時遇到了這個需求,所以完成功能後,就將發表情這個功能封裝了一下。使用非常簡單,只需要三兩行程式碼,你就能在你的專案中實現發表情的功能啦。
效果圖展示
實現步驟
1.將以下類與資原始檔依次匯入到你自己的專案中
2.在某輸入頁面中的xml中添加布局檔案
比如我這個效果圖就是一個Activity。那我就在Activity的根部局當中新增如下程式碼
<include
android:id ="@+id/chat_face_container"
layout="@layout/chat_face_container"
android:visibility="gone" />
這裡應該注意xml頁面的搭建邏輯,chat_face_container應該在一個LinearLayout的最下面,整個LinearLayout應該是附著在螢幕底部。具體請參考demo
3.在程式碼中的配置
非常非常的簡單,只需要一行程式碼即可
//param1:你加入當前頁面中的佈局,param2:你的輸入框,param3:context
ChatFaceView chatFaceView = new ChatFaceView(chat_face_container, edit_input_text, this);
假如ios發來一條帶有表情的訊息,如何將字串訊息轉換為帶有表情的字串?
呼叫如下方法即可
SpannableStringBuilder ssbC = FaceUtils.getInstance(context).toSpanText( edit_input_text.getText().toString()); tvshow2.setText(ssbC);
另外還有一些常用api
/*比如:
為輸入框新增點選事件,點選輸入框讓chatview消失*/
edit_input_text.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
chatFaceView.closeChatView();
}
});
/*比如:
為表情按鈕新增點選事件,點選讓chatview消失或顯示*/
btn_chat_emoji.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
chatFaceView.openOrCloseChatView();
}
});
核心要點
1.傳送表情實則是傳送的表情對應的String編碼,這個編碼在本案例中就在asset檔案下
2.點選表情後,表情圖片如何顯示在了EditText中?而不是以原本String格式顯示?
這是通該方法實現
/**
*
* @param png 檔名,不含路徑
* @return
*/
private SpannableStringBuilder getFace(String png) {
SpannableStringBuilder sb = new SpannableStringBuilder();
try {
// String tempText = "[" + png + "]";
String tempText =FaceUtils.getInstance(mContext).GetFaceMap(0).get(png);
sb.append(tempText);
sb.setSpan(
new ImageSpan(mContext, BitmapFactory
.decodeStream(mContext.getAssets().open("face/default/" + png))), sb.length()
// .decodeStream(mContext.getAssets().open(png))), sb.length()
- tempText.length(), sb.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
} catch (Exception e) {
e.printStackTrace();
}
return sb;
}
相關推薦
Android之一分鐘完成發表情功能
應用背景 不知道大家是否開發過類似朋友圈,論壇之類的功能。通常在這個過程中我們要有發表情的需求。LZ當時遇到了這個需求,所以完成功能後,就將發表情這個功能封裝了一下。使用非常簡單,只需要三兩行程式碼,你就能在你的專案中實現發表情的功能啦。 效果圖展示
發布功能完成。
對象 column aps war direct mar user .get als 編寫要求登錄的裝飾器 def loginFrist(func): @wraps(func) def wrapper(*args, **kwargs):
發布功能完成
rgs post app render class 數據 query user itl 編寫要求登錄的裝飾器 from functools import wraps def loginFirst(func): #參數是函數 @wraps(func) def
Android 表情功能的完整處理方案
概述1.原理和實現思路2.表情圖片顯示3.表情面板4.表情的輸入框插入和刪除5.表情新增指令碼Android中表情功能,一般都不是用ImageView去設定圖片實現的,表情一般會巢狀在文字之中,那麼如何實現呢,這裡就介紹一下其中的原理,此外還有相關功能的實現思路和具體程式碼
5分鐘整合即時通訊功能——環信Android版
下載環信demo (Android) 什麼是環信demo 環信demo展示了怎樣使用環信SDK快速建立一個完整的類微信聊天APP。展示的功能包括:環信SDK初始化,登入,登出,註冊訊息接收listener, 傳送訊息。 環信demo原始碼已在github上開源供開發
Android呼叫系統的打電話和發簡訊功能
一、打電話 1、新增打電話的許可權在manifast檔案中。 <uses-permission android:name="android.permission.CALL_PHONE"/> 2、使用Uri.parse(S
Android-使用Mob簡訊驗證碼SDK完成簡訊驗證功能
1.之所以選擇Mob簡訊驗證碼SDK,是因為它是完全免費的,所以很適合自己平時測試或者在個人的小專案中使用,但是有點小坑的是上線前每個手機號一天有次數限制、簡訊內容不能自定義。 2.首先開啟Mob
Android呼叫系統打電話和發簡訊功能
一、打電話 1、新增打電話的許可權在manifast檔案中。 <uses-permission Android:name="android.permission.CALL_PHONE"/> 2、使用Uri.par
android sina 微博表情功能的實現
表情為本地表情,把所有的表情圖片裝載到gridview裡面。然後在gridview的點選事件裡做如下處理。 @Override public void onItemClick(AdapterView<?> arg0, View arg1, int inde
Log4j配置發郵件功能
郵件功能 smtp eve gin java apach bsp ole message # 發送日誌到指定郵件log4j.appender.mail=org.apache.log4j.net.SMTPAppenderlog4j.appender.mail.Threshol
如何免費使用jrebel 和eclipse 項目配合完成熱部署功能
.dll 五步 使用 完成 tom start 一個 facebook advance 感謝王同學分享了熱部署插件,jrebel,說修改後臺代碼可以不用重啟tomcat,於是立即下載使用。。。。本來很簡單的一個事情,因為參照了網上各種帖子,結果坑的不行。。。。所以把自己的經
aNDROID文本自動連接功能
5% baidu 連接 lis 自動連接 androidl com 功能 roi aNDROIDLIsTITEM%E6%94%B9%E5%8F%98%E9%A2%9C%E8%89%B2 http://music.hao123.com/songlist/495610601
郵件發送功能開發
第三版 升級 離開 消息 pac 教授 數據 操作 性能 作為一名.Net開發,"郵件發送"功能的開發和使用是必須要掌握的,因為這個功能作為“消息推送”的一種手段經常出現在各種.Net系統中,所以本文將對.Net平臺下的“郵件發送”,做一個細致的分析! 一、who需要郵件功
[js高手之路]設計模式系列課程-委托模式實戰微博發布功能
i++ 發布 動態 use shee 內容 標題 cnblogs 文件 在實際開發中,經常需要為Dom元素綁定事件,如果頁面上有4個li元素,點擊對應的li,彈出對應的li內容,怎麽做呢?是不是很簡單? 大多數人的做法都是:獲取元素,綁定事件 1 <ul&
3分鐘完成MongoDB2.6升級3.0
mongodb 2.6升級3.0 3分鐘完成MongoDB2.6升級3.0前言Part1:寫在最前自從3.0版本起,MongoDB支持了WT存儲引擎,這個引擎相對老的MMAPv1存儲引擎來講,具有更高的壓縮比,且支持文檔級並發控制。也正因為WT的優良特性,在MongoDB3.2版本起,WT存儲引擎作為
完成登錄功能,用session記住用戶名
aps flask cto ati 數據庫 ldb 修改密碼 localhost ica from flask import Flask, render_template,request,redirect,url_for,session from flask_sqlalc
用正則表達式完成xpath的功能(強大的正則表達式)
atime quest fin tle clas 12px int time xpath 1 url = ‘http://money.163.com/special/pinglun‘ 2 response = requests.get(url) 3 # regex = r
Android中使用HttpClient發送Get請求
roi borde 9.png cli src .com img image color 這裏要指定編碼,不然服務器接收到的會是亂碼的。Android中使用HttpClient發送Get請求
spring mvc+mybatis ios android整合cms內容發布平臺
減少 連接 jquer 登錄 jdk版本 sso href com 分享圖片 開發語言: java、ios、android 部署平臺: linux、window jdk版本:JDK1.7以上版本 開發工具: eclipse、idea等 服務器中間件:Tomcat
Android自定義processor實現bindView功能
lis dds 定義 java代碼 cli 註冊 文章 type() mage 一、簡介 在現階段的Android開發中,註解越來越流行起來,比如ButterKnife,Retrofit,Dragger,EventBus等等都選擇使用註解來配置。按照處理時期,註解又分為兩