介绍
这篇文章将为大家详细讲解有关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 零; ,,,} ,,} , nullandroid怎么取得本地通讯录的头像的原图