android怎么取得本地通讯录的头像的原图

  介绍

这篇文章将为大家详细讲解有关android怎么取得本地通讯录的头像的原图,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

如果想通讯录进入详情页,那么最重要的参数就是contactId,这个是联系人的唯一标识

getListView () .setOnItemClickListener (new  AdapterView.OnItemClickListener (), {   @Override才能   public 才能;void  onItemClick (AdapterView<?祝辞,母公司,View 看来,,int 位置,,long  id), {   ,,try  {   ,,,,Cursor  Cursor =,(光标),getListAdapter () .getItem(位置);   ,,,,if  (cursor ==, null), {   ,,,,,返回;   ,,,,}   ,   ,,,,int  contactId =, cursor.getInt (Personal.ID_COLUMN_INDEX);   ,,,,Intent  Intent =, new 意图();   ,,,,intent.setClass (ContactDetail.class ContactsList.this也);   ,,,,intent.putExtra (“contactId" contactId);   ,,,,startActivity(意图);   ,,}捕捉(Exception 交货),{   ,,,,ex.printStackTrace ();   ,,}   ,,}   });

本地通讯录的原图获取方法是:

public  class  ContactDetail  extends  Activity  {   ,   private 才能;ImageView  contact_photo;   ,   public 才能static  void  startActivity (Context 上下文),{   ,,,Intent  Intent =, new 意图();   ,,,intent.setClass(上下文,ContactDetail.class);   ,,,context.startActivity(意图);   ,,}   ,   @Override才能   protected 才能;void  onCreate (Bundle  savedInstanceState), {   ,,,super.onCreate (savedInstanceState);   ,,,requestWindowFeature (Window.FEATURE_NO_TITLE);   ,,,setContentView (R.layout.contact_detail);   ,   ,,,int  contactId =, getIntent () .getIntExtra (“contactId",, 0);   ,   ,,,contact_photo =, (ImageView) findViewById (R.id.contact_photo);   ,   ,,,loadTask  task =, new  loadTask (contactId);   ,,,task.execute ();   ,   ,,}   ,   ,   private 才能class  loadTask  extends  AsyncTask<空白,,空虚,,Bitmap>, {   ,   ,,,public  loadTask (int  id), {   ,,,,,contactId =, id;   ,,,}   ,,,private  int  contactId;   ,   ,,@Override   ,,,protected  Bitmap  doInBackground(空白…,params), {   ,,,,,InputStream  InputStream =, openDisplayPhoto (contactId);   ,   ,,,,,BitmapFactory.Options  opt =, new  BitmapFactory.Options ();   ,,,,,opt.inSampleSize =, 1;   ,,,,,Bitmap  Bitmap =, BitmapFactory.decodeStream (inputStream,,空,,选择);   ,,,,,return 点阵;   ,,,}   ,   ,,@Override   ,,,protected  void  onPostExecute (Bitmap 结果),{   ,   ,,,,,如果(result  !=, null), {   ,,,,,,,contact_photo.setImageBitmap(结果);   ,,,,,}   ,,,,,super.onPostExecute(结果);   ,,,}   ,   ,,}   ,   ,/* *   ,,*,这个是取到清晰图的inputStream的代码   ,,*,@param  contactId   ,,* @return   ,,*/public 才能;InputStream  openDisplayPhoto (long  contactId), {   ,,,Uri  contactUri =, ContentUris.withAppendedId (contactId ContactsContract.Contacts.CONTENT_URI也);   ,,,Uri  displayPhotoUri =, Uri.withAppendedPath (ContactsContract.Contacts.Photo.DISPLAY_PHOTO contactUri也);   ,,,try  {   ,,,,AssetFileDescriptor  fd =,,,,,,,,,this.getContentResolver () .openAssetFileDescriptor (displayPhotoUri,“r");   ,,,,,return  fd.createInputStream ();   ,,,},catch  (IOException  e), {   ,,,,,e.printStackTrace ();   ,,,,,return 零;   ,,,}   ,,}   ,   null

android怎么取得本地通讯录的头像的原图