设置Parcelable作为ImageView图像
问题描述:
我一直在使用此库https://android-arsenal.com/details/1/4072从gallary和相机中获取图像以设置为个人资料图片。设置Parcelable作为ImageView图像
TextView chooseImageTextView = (TextView) findViewById(R.id.signUp_uploadPicture_textView);
chooseImageTextView.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
ImagePicker.create((Activity) SignUpActivity.this)
.folderMode(true)
.folderTitle("Select image folder")
.imageTitle("Select image")
.single()
.showCamera(true)
.imageDirectory("Camera - Bond Messenger")
.start(REQUEST_CODE_PICKER);
}
}
);
和它一直工作得很不错,但结果图像之际,从库中导入图像的类型的Parcelable ArrayList和因此而来的问题就在这里
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_PICKER && resultCode == RESULT_OK && data != null) {
ArrayList<Image> images = data.getParcelableArrayListExtra(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES);
profilePictureCircleImageView.setImageBitmap(images.get(0));
}
}
我得到一个错误试图设置结果图像在图像的profilePictureCircleImageView
,所以我已经试过了铸造为位图,BitmapDrawable和绘制对象,但没有工作
有什么帮助吗?谢谢
答
快速挖掘您提供的库的源代码,发现Image
类不是来自android包android.media.Image
。
See Image.class from library on github
如此以来,类持有,你可以做以下的图片的路径。
Bitmap bmImg = BitmapFactory.decodeFile(images.get(0).getPath());
profilePictureCircleImageView.setImageBitmap(bmImg);
答
返回的内容不是实际图像,而是保存图像路径的对象。 您必须手动加载:
String path = images.get(i).getPath()
Bitmap bitmap = BitmapFactory.decodeFile(path, null);
profilePictureCircleImageView.setImageBitmap(bitmap);
谢谢你!!!这是一个快速而完美的答案! –