Android 列表视图中的联系人图像占位符

Android contact image placeholder in listview

我有一个带有列表视图和自定义适配器的 activity。检索联系信息和图像不是问题。如果没有联系人的图片,我无法显示替代图片。

检查 URI 是否为 NULL 对我不起作用。

我正在检索 android 联系人的 URI,生成的 URI 的格式为

content://com.android.contacts/contacts/XXX/photo

其中 XXX 是一个数字。对于添加的默认联系人(如紧急号码),生成的 URI 仅为 NULL,因此检查 NULL 以将图像替换为占位符图像仅适用于这些号码。对于所有其他没有设置图像的联系人,我想检查联系人图像的文件大小。

File f = new File(uri.getPath());
long size = f.length();
String str = Long.toString(size);

使用上面的命令结果总是0,不管有没有照片。

如何正确检查文件大小?或者我如何检查生成的照片是否为空。

感谢您的帮助

我鼓励您使用 Facebook Fresco 图书馆。您将能够为图像视图提供占位符图像和错误图像

使用任何著名的图像加载器,如 Universal image loader or picasso lib。这个库将处理所有事情,它有一些放置错误图像的方法。你可以直接把你的联系人 URl 放在这个库中。 他们会支持各种url。 you can check here

检查文件是否存在的想法让我找到了这个 post 答案

detect if contact has photo

.getDrawable() == null

得到正确的结果。

感谢所有评论