android sqlite数据库 emoji表情,Android的Emoji表情

近来要做个项目,里边要求有emoji表情列表,“表情”在很多即时聊天IM的项目中会用到,很多存储的是图片,而emoji表情是通过utf/Unicode编码进行显示的。我使用的是Unicode编码,通过自己创建了一个emoji的Unicode编码的数据库,在工程中使用。

66fbeaa74d9a

示例图

自己创建的一个部分emoji表情的sqlite数据库:http://download.csdn.net/detail/went_gone/9666565

下载下来后放在自己项目的assets文件夹下,在代码中将assets下的此数据库读写到database下进行数据库操作。

66fbeaa74d9a

项目中emoji数据库

使用SQLiteDatabase进行操作数据库时,要传递数据库所在的路径。

/**

* 将assets目录下的文件拷贝到database中

* @return 存储数据库的地址

*/

public static String CopySqliteFileFromRawToDatabases(String SqliteFileName) throws IOException {

// 第一次运行应用程序时,加载数据库到data/data/当前包的名称/database/

File dir = new File("data/data/" + BaseApplication.getContext().getPackageName() + "/databases");

if (!dir.exists() || !dir.isDirectory()) {

dir.mkdir();

}

File file= new File(dir, SqliteFileName);

InputStream inputStream = null;

OutputStream outputStream =null;

//通过IO流的方式,将assets目录下的数据库文件,写入到应用内存中中。

if (!file.exists()) {

try {

file.createNewFile();

inputStream = BaseApplication.getContext().getClass().getClassLoader().getResourceAsStream("assets/" + SqliteFileName);

outputStream = new FileOutputStream(file);

byte[] buffer = new byte[1024];

int len ;

while ((len = inputStream.read(buffer)) != -1) {

outputStream.write(buffer,0,len);

}

} catch (IOException e) {

e.printStackTrace();

}

finally {

if (outputStream != null) {

outputStream.flush();

outputStream.close();

}

if (inputStream != null) {

inputStream.close();

}

}

}

return file.getPath();

}

我们拿到了拷贝到手机上的emoji.db的路径之后,就可以进行数据库的操作获取emoji表情了。将emoji表情创建一个实体类EmojiBean用来管理。

public class EmojiBean {

private int id;

private int unicodeInt;

public String getEmojiString() {

return ExpressionUtil.getEmojiStringByUnicode(unicodeInt);

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public int getUnicodeInt() {

return unicodeInt;

}

public void setUnicodeInt(int unicodeInt) {

this.unicodeInt = unicodeInt;

}

}

还要将一点,将unicode转化成emoji表情需要以下操作

public class ExpressionUtil {

/**

* 将unicode转化成String

* @param unicode

* @return

*/

public static String getEmojiStringByUnicode(int unicode){

return new String(Character.toChars(unicode));

}

}

通过对数据库的操作拿到了emoji的表情集合,接下来就在工程中使用就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值