{"id":530,"date":"2014-01-08T20:17:10","date_gmt":"2014-01-08T19:17:10","guid":{"rendered":"http:\/\/blog.ansuz.nl\/?p=530"},"modified":"2014-01-08T20:17:10","modified_gmt":"2014-01-08T19:17:10","slug":"loading-contact-photos-with-picasso","status":"publish","type":"post","link":"http:\/\/blog.ansuz.nl\/index.php\/2014\/01\/08\/loading-contact-photos-with-picasso\/","title":{"rendered":"Loading Contact photos with Picasso"},"content":{"rendered":"<p>The <a href=\"https:\/\/github.com\/square\/picasso\" target=\"_blank\">Picasso<\/a> image downloading library has an interesting feature that I just stumbled upon. It can load <a href=\"http:\/\/developer.android.com\/guide\/topics\/providers\/contacts-provider.html\" target=\"_blank\">Contact<\/a> photos based on a passed in Contact <a href=\"http:\/\/developer.android.com\/reference\/android\/net\/Uri.html\" target=\"_blank\">Uri<\/a> containing the <a href=\"http:\/\/developer.android.com\/reference\/android\/provider\/ContactsContract.ContactsColumns.html#LOOKUP_KEY\" target=\"_blank\">ContactsContract.Contacts.LOOKUP_KEY<\/a>. It is as simple as:<\/p>\n<div id=\"ig-sh-1\" class=\"syntax_hilite\">\n\n\t\t<div class=\"toolbar\">\n\n\t\t<div class=\"view-different-container\">\n\t\t\t\t\t\t<a href=\"#\" class=\"view-different\">&lt; View <span>plain text<\/span> &gt;<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"language-name\">java<\/div>\n\n\t\t\n\t\t<br clear=\"both\">\n\n\t<\/div>\n\t\n\t<div class=\"code\">\n\t\t<ol class=\"java\" style=\"font-family:monospace\"><li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\">Uri uri <span style=\"color: #339933\">=<\/span> Uri.<span style=\"color: #006633\">withAppendedPath<\/span><span style=\"color: #009900\">&#040;<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\">&nbsp; &nbsp; ContactsContract.<span style=\"color: #006633\">Contacts<\/span>.<span style=\"color: #006633\">CONTENT_LOOKUP_URI<\/span>, lookupKey<span style=\"color: #009900\">&#041;<\/span><span style=\"color: #339933\">;<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\">Picasso.<span style=\"color: #006633\">load<\/span><span style=\"color: #009900\">&#040;<\/span>uri<span style=\"color: #009900\">&#041;<\/span>.<span style=\"color: #006633\">into<\/span><span style=\"color: #009900\">&#040;<\/span>myImageView<span style=\"color: #009900\">&#041;<\/span><span style=\"color: #339933\">;<\/span><\/div><\/li>\n<\/ol>\t<\/div>\n\n<\/div>\n\n<p>It doesn&#8217;t seem to be mentioned on the <a href=\"http:\/\/square.github.io\/picasso\/\" target=\"_blank\">Picasso website<\/a>, but it is a very useful feature.<\/p>\n<p>If you want to know exactly how Picasso loads the Contact photo, have a look at the <a href=\"https:\/\/github.com\/square\/picasso\/blob\/master\/picasso\/src\/main\/java\/com\/squareup\/picasso\/ContactsPhotoBitmapHunter.java\" target=\"_blank\">ContactsPhotoBitmapHunter<\/a> class.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>The Picasso image downloading library has an interesting feature that I just stumbled upon. It can load Contact photos based on a passed in Contact Uri containing the ContactsContract.Contacts.LOOKUP_KEY. It is as simple as: &lt; View plain text &gt; java &hellip; <a href=\"http:\/\/blog.ansuz.nl\/index.php\/2014\/01\/08\/loading-contact-photos-with-picasso\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[112,52],"tags":[125,127,128,126],"class_list":["post-530","post","type-post","status-publish","format-standard","hentry","category-android","category-java","tag-android-2","tag-contact","tag-photo","tag-picasso"],"_links":{"self":[{"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/posts\/530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/comments?post=530"}],"version-history":[{"count":2,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/posts\/530\/revisions"}],"predecessor-version":[{"id":532,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/posts\/530\/revisions\/532"}],"wp:attachment":[{"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/media?parent=530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/categories?post=530"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.ansuz.nl\/index.php\/wp-json\/wp\/v2\/tags?post=530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}