2011-05-02 69 views
0

好吧,我试图复制其创建联系人的快捷方式,当得到安置在主屏幕快捷方式,显示例如:试图复制Android的主屏幕快捷方式联系,以问题

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卡的调用目标。是否有内置的方式可以轻松复制整个联系快捷方式,调用方式,图像,文本和所有内容,而无需从头开始重现整个事件?

回答

0

啊哈!想出如何获得正确的照片。虽然这看起来不符合直觉,但在构建字段投影以查询联系人时,字段Contacts._IDContactsContract.Data.CONTACT_ID不是同一件事。

ContactsContract.Data.CONTACT_ID是传入以获取照片的正确方法之一。使用这个,现在一切都是金色的。

相关问题