如何用毕加索和滑翔加载图像字符串路径和图像文件?

时间:2016-05-31 13:53:13

标签: android uri picasso android-glide android-photos

所以无论我做什么,毕加索和滑翔都不能将图像文件或图像串路径加载到图像视图中。

我试过了。

这是我的代码:

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);


        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data)
        {
            Uri selectedImage = data.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};//Array size of 1, and we put in a string
            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
            cursor.moveToFirst();
            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            user_image_path = cursor.getString(columnIndex);//here we have our image path.
            cursor.close();

            File tempFile2 = new File(selectedImage.getPath());

            //Toast.makeText(this, "I got your image " + user_image_path, Toast.LENGTH_SHORT).show();
            myImageView = (ImageView) findViewById(R.id.cameraActivity_ImageView);
            //Picasso.with(TakePhotoActivity.this).load(selectedImage).fit().centerCrop().into(myImageView);
            Glide.with(this).load(new File(selectedImage.getPath())).centerCrop().into(myImageView);


        }



    }

所以我试过了:

1)Picasso.with(TakePhotoActivity.this).load(user_image_path).fit().centerCrop().into(myImageView);

2)Glide.with(this).load(user_image_path).centerCrop().into(myImageView);

3)Picasso.with(TakePhotoActivity.this).load(tempFile2).fit().centerCrop().into(myImageView);

4)Glide.with(this).load(tempFile2).centerCrop().into(myImageView);

5)Picasso.with(TakePhotoActivity.this).load(selectedImage.getPath())).fit().centerCrop().into(myImageView);

6)Glide.with(this).load(selectedImage.getPath())).centerCrop().into(myImageView);

他们都没有奏效。如果我使用:

Picasso.with(TakePhotoActivity.this).load(selectedImage).fit().centerCrop().into(myImageView);

Glide.with(this).load(selectedImage).centerCrop().into(myImageView);

上面这两个与Uri selectedImage变量一起工作,但其他都不起作用。那么为什么其他选项不起作用以及如何使它们工作,因为理想情况下我想使用图像路径字符串。

希望你们能帮忙!我完全被这个困扰了。

2 个答案:

答案 0 :(得分:0)

Picasso.with(context).load(data.getData()).into(imageView);

答案 1 :(得分:0)

Glide可以通过Uri完成,如下面的代码所示。 但你应该检查

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

如果你已经这样做了,我不知道。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode  == RESULT_OK){
        if (requestCode == PIC_REQ_CODE){
            Glide.with(this).load(data.getData()).into((ImageView)findViewById(R.id.iv_result));
        }
    }
}