2016-09-26 75 views
0

我一直在使用此库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和绘制对象,但没有工作

有什么帮助吗?谢谢

回答

0

快速挖掘您提供的库的源代码,发现Image类不是来自android包android.media.Image

See Image.class from library on github

如此以来,类持有,你可以做以下的图片的路径。

Bitmap bmImg = BitmapFactory.decodeFile(images.get(0).getPath()); 
profilePictureCircleImageView.setImageBitmap(bmImg); 
+0

谢谢你!!!这是一个快速而完美的答案! –

0

返回的内容不是实际图像,而是保存图像路径的对象。 您必须手动加载:

String path = images.get(i).getPath() 

Bitmap bitmap = BitmapFactory.decodeFile(path, null); 

profilePictureCircleImageView.setImageBitmap(bitmap); 
相关问题