android - 安卓联系人图标存储技巧

标签 android sqlite android-contacts

我想知道存储本地电话联系人图标的最佳方式是什么。我正在编写一个管理器,它允许用户选择要在现在需要联系人图标显示的列表中显示的联系人。

将图标存储在选择工作的不同位置,还是我应该尝试存储图标位置并以这种方式链接到它的路径?任何经历过这个的人都可以指出我正确的方向吗?我已经在使用 Sqlite 数据库来存储联系人。

任何代码/链接都会非常有帮助。

最佳答案

由于您已经将联系人存储在 Sqlite 数据库中,我只需向该数据库添加另一个字段来保存编码图像。

我解决类似问题的方法是:我使用了 Base64用于将图像编码为字符串,然后将该字符串存储在我想要的任何位置...

我在Base64类中添加了一个函数,直接为我编码一个Bitmap对象并返回一个String,代码如下:

public static String encodeBitmap(Bitmap bmp) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
    byte[] buf = stream.toByteArray();
    return encodeBytes(buf);
}

其中 encodeBytes(buffer) 已经是 Base64 类的一个实现函数。

这比存储图片路径更好,因为用户可以轻松更改路径,然后您的应用程序将无法再找到图片。

希望对您有所帮助。

关于android - 安卓联系人图标存储技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6270086/

相关文章:

android - 如何将更新后的电话号码放入我为 Android 应用程序选择的字段中?

android - 从 Android 中的联系人中获取第二个号码

java - 谷歌地图不显示

java - 类 'Anonymous class derived from PlaceSelectedListener' 必须声明为抽象或实现抽象方法

android - 如何在 Android 上满足 Apache POI 的依赖性?

ios - sqlite3_last_insert_rowid 在第一次插入后返回 0

android - 通过在 WebView 中运行的 Web 应用程序获取位置

java - 我怎样才能只显示最后一行?

python - 正确安装支持 FTS5 的 sqlite3

java - 使用 ZXing 在 Android 上编码联系人信息 (MeCard)