欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

android contacts电话查询头像,android怎么取得本地通讯录的头像的原图

发布时间:2025/3/21 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 android contacts电话查询头像,android怎么取得本地通讯录的头像的原图 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

发布时间:2021-02-10 19:25:16

来源:亿速云

阅读:103

作者:小新

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

如果想通讯录进入详情页,那么最重要的参数就是contactId,这个是联系人的唯一标识getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> 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 {

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怎么取得本地通讯录的头像的原图”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

总结

以上是生活随笔为你收集整理的android contacts电话查询头像,android怎么取得本地通讯录的头像的原图的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。