android如何取得本地通讯录的头像的原图的实现代码

发布时间:2019-08-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了android如何取得本地通讯录的头像的原图的实现代码脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文介绍了android如何取得本地通讯录头像的原图的实现代码,分享给大家,也给自己留个笔记

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

 getListView().setOnITemClickListener(new AdapterView.OnItemClickListener() {   @override   public void onItemClick(AdapterView<&#63;> parent, View view, int position, long id) {    try {      Cursor cursor = (Cursor) getListAdapter().getItem(position);      if (cursor == null) {       return;      }        int contactId = cursor.getInt(PErsonal.ID_COLUMN_INDEX);      Intent intent = new Intent();      intent.setClass(ContactsList.this, ContactDetail.class);      intent.putExtra("contactId",contactId);      startActivity(intent);    }catch(Exception ex) {      ex.PRintStackTrace();    }   } });

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

 public class ContactDetail extends Activity {     private ImageView contact_photo;     public static void startActivity(Context context) {     Intent intent = new Intent();     intent.setClass(context,ContactDetail.class);     context.startActivity(intent);   }     @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<Void, Void, Bitmap> {       public loadTask(int id) {       contactId = id;     }     private int contactId;       @Override     protected Bitmap doInBackground(Void... params) {       InputStream inputStream = openDisplayPhoto(contactId);         BitmapFactory.Options opt = new BitmapFactory.Options();       opt.inSampleSize = 1;       Bitmap bitmap = BitmapFactory.decodeStream(inputStream, null, opt);       return bitmap;     }       @Override     protected void onPostExecute(Bitmap result) {         if(result != null) {         contact_photo.setImageBitmap(result);       }       super.onPostExecute(result);     }     }     /**    * 这个是取到清晰图的inputStream的代码    * @param contactId    * @return    */   public InputStream openDisplayPhoto(long contactId) {     Uri contactUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);     Uri displayPhotoUri = Uri.withAppendedPath(contactUri, ContactsContract.Contacts.Photo.DISPLAY_PHOTO);     try {       AssetFileDescriptor fd =           this.getContentResolver().openAssetFileDescriptor(displayPhotoUri, "r");       return fd.createinputStream();     } catch (IOException e) {       e.printStackTrace();       return null;     }   }   } 

activity的运行效果是:

android如何取得本地通讯录的头像的原图的实现代码

代码在https://github.com/nickgao1986/StepSport

android教程
脚本网站
android studio

脚本宝典总结

以上是脚本宝典为你收集整理的android如何取得本地通讯录的头像的原图的实现代码全部内容,希望文章能够帮你解决android如何取得本地通讯录的头像的原图的实现代码所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。