我想知道存储本地电话联系人图标的最佳方式是什么。我正在写一个管理员,允许用户选择要在列表中显示的联系人,现在需要联系人图标显示。
将图标存储在选定作品的不同位置,还是应该尝试存储图标位置并以此方式链接的路径?任何经历过这种情况的人都能指出我正确的方向吗?我正在使用Sqlite数据库来存储联系人。
任何代码/链接都会非常有用。
答案 0 :(得分:1)
由于您已经将联系人存储在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类的实现函数。
这样做比将图像存储路径更好,因为用户可以轻松更改路径,然后您的应用程序就不会再找到图片。
希望有所帮助。
答案 1 :(得分:1)
首先,我建议您查看Android源代码,看看他们是如何做到这一点的。
除此之外,如果图像很小,我强烈建议您创建一个合适的ContentProvider
并将图像存储为使用Cursor.getBlob()
附加到行的二进制blob。有关详细信息,请参阅http://developer.android.com/intl/de/guide/topics/providers/content-providers.html#querying。
对于较大的图片,请查看How to store large blobs in an android content provider?