试图复制android主屏幕联系人快捷方式,有问题

时间:2011-05-02 05:00:19

标签: android layout android-layout quickcontact

好的,我正在尝试复制创建联系人快捷方式时放置在主屏幕上的快捷方式,如下所示:

enter image description here

我有一个工作的QuickContactBadge,点击后会显示QuickContact工具栏。但是,我有两件事我遇到了麻烦。

一个是图片。我尝试使用this question中的代码(我通过添加参数来更改它以传递联系人ID)。然后我将图像分配给我的QuickContactBadge:

bdg.setImageURI(getPhotoUri(cid));

它绝对可以获得图片,但它完全是错误的图片。如下图所示:

enter image description here

正如您所看到的,它为Domino返回的图像显然不是Domino的徽标。

我正在通过此代码将联系人ID传递给该函数:

    public static String[] ContactsProjection = new String[] {
            Contacts._ID,
            Contacts.LOOKUP_KEY, 
            Contacts.DISPLAY_NAME
    };

    public static Cursor getContacts() {
            ContentResolver cr = CoreLib.ContentResolver();
            Cursor contacts = cr.query(
                    ContactsContract.Data.CONTENT_URI, 
                    ContactsProjection, 
                    null, null, 
                    Contacts.TIMES_CONTACTED + " DESC"
            );
        return contacts;
    }

我认为应该为每条记录返回正确的ID。是

接下来,如何在缩略图显示时缩小或缩小缩略图?

我有点失望地看到QuickContactBadge实际上没有复制QuickContact快捷方式的整体外观,...但只是作为QuickContact卡的调用目标。是否有任何内置的方法可以轻松复制整个,调用,图像,文本和所有内容中的联系人快捷方式,而无需从头开始重现整个事情?

1 个答案:

答案 0 :(得分:0)

啊,哈哈!弄清楚如何获得正确的照片。虽然这看似违反直觉,但在构建字段投影以查询联系人时,字段Contacts._IDContactsContract.Data.CONTACT_ID并不相同。

ContactsContract.Data.CONTACT_ID是传递照片的正确方法。使用它,现在一切都是金色的。