是这样,我做个简单的通讯录,截取其中的一部分
if (phoneCursor != null) {
while (phoneCursor.moveToNext()) { //得到手机号码
String phoneNumber = phoneCursor.getString(1);
//当手机号码为空的或者为空字段 跳过当前循环
if (TextUtils.isEmpty(phoneNumber))
continue;
//得到联系人名称
String contactName = phoneCursor.getString(0);
//得到联系人ID
Long contactid = phoneCursor.getLong(3);
Long photoid = phoneCursor.getLong(2);
//得到联系人头像Bitamp
Bitmap contactPhoto = null;
//photoid 大于0 表示联系人有头像 如果没有给此人设置头像则给他一个默认的
if(photoid > 0 ) {
Uri uri =ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactid);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri);
contactPhoto =BitmapFactory.decodeStream(input);
}else {
contactPhoto = BitmapFactory.decodeResource(getResources(), R.drawable.list_photo_default);
}
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("Name", contactName);
map.put("Num", phoneNumber);
map.put("Photo",........);
ContactsList.add(map);
.................................................
其中"Name"和"Num"字段正常显示,"Photo"字段中需要添加的是R.drawable.XXXX.png这种类型的int值,问题是若是我程序中自己的图片,当然只需这样引用就可以了,但是现在我是从数据库中获取的图片,请问,该如何将通讯录中获取的图片转化成相应的可以使用的int类型???
if (phoneCursor != null) {
while (phoneCursor.moveToNext()) { //得到手机号码
String phoneNumber = phoneCursor.getString(1);
//当手机号码为空的或者为空字段 跳过当前循环
if (TextUtils.isEmpty(phoneNumber))
continue;
//得到联系人名称
String contactName = phoneCursor.getString(0);
//得到联系人ID
Long contactid = phoneCursor.getLong(3);
Long photoid = phoneCursor.getLong(2);
//得到联系人头像Bitamp
Bitmap contactPhoto = null;
//photoid 大于0 表示联系人有头像 如果没有给此人设置头像则给他一个默认的
if(photoid > 0 ) {
Uri uri =ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactid);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri);
contactPhoto =BitmapFactory.decodeStream(input);
}else {
contactPhoto = BitmapFactory.decodeResource(getResources(), R.drawable.list_photo_default);
}
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("Name", contactName);
map.put("Num", phoneNumber);
map.put("Photo",........);
ContactsList.add(map);
.................................................
其中"Name"和"Num"字段正常显示,"Photo"字段中需要添加的是R.drawable.XXXX.png这种类型的int值,问题是若是我程序中自己的图片,当然只需这样引用就可以了,但是现在我是从数据库中获取的图片,请问,该如何将通讯录中获取的图片转化成相应的可以使用的int类型???
解决方案 »
- DatePicker类型转换问题
- android 相对布局
- Android有红色感叹号!
- 请问:使用r12 sdk运行模拟器报错如何解决?qemu: linux kernel too old to load a ram disk
- 利用ndk c/c++ 实现android短信部分功能
- 来哦来哦,国内设备商旗下娱乐类手机应用下载次数占其下载总量七成啦
- 在Android平台上用Java写的程序,移植到其他平台(比如WinCE、Linux)容易么?
- 编译android源码出错,求指导
- JNI调JAVA的效率不如用127.0.0.1通讯?
- 关于android中的AlertDialog的小问题
- 小妹请教过滤特殊符号的正则表达式
- 安卓访问数据库
我是想把他们全部添加到map中。请问直接使用bitmap该如何实现????
map.put("Photo", "图片路径");这样就可以了。
在用ListView的时候,设置好adapter对应ImageView和Photo会自动显示图片的。