2011-05-02 67 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是傳入以獲取照片的正確方法之一。使用這個,現在一切都是金色的。

相關問題