从filepath将位图设置为imageview无效

时间:2013-08-27 07:54:05

标签: java android xml bitmap imageview

我尝试了几乎所有可能的方法,将图像从存储的文件路径设置为image-view

它们都不起作用。 图像是从其他活动的图库中选择的,图像路径存储在数据库中。

图片的类型为 .jpg .jpeg .png

存储在数据库中的图像路径,包含没有任何扩展名的路径

eg.  /external/storage/media/carimagename

当我尝试使用此代码将图像设置为imageview时,没有错误但图像未设置。

for(int i=0;i<n;i++)
 {
 Bitmap pic = BitmapFactory.decodeFile(listview_arraypro1[i]);
 carpict.setImageBitmap(pic);

    /// File imgFile =new File("listview_arraypro1[i]");
    // carpict.setImageBitmap(BitmapFactory.decodeFile(imgFile.getAbsolutePath()));



          // Bitmap carpic = BitmapFactory.decodeStream(is);
          // carpic = Bitmap.createScaledBitmap(carpic, 72, 70, false); 

 }

如何将路径格式/external/storage/media/carimagename的图片设置为imageview

我使用以下内容获取上一个活动中的图像路径

             Uri selectedImage = imageReturnedIntent.getData();

           String  selectedImagePath = selectedImage.getPath();

我从selectedImagePath获取了错误的路径吗?

这是我使用的没有mnt / sdcard的路径

  private String getRealPathFromURI(Uri contentURI) {
    Cursor cursor = getContentResolver().query(contentURI, null, null, null, null);
    if (cursor == null) { // Source is Dropbox or other similar local file path
        return contentURI.getPath();
    } else { 
        cursor.moveToFirst(); 
        int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA); 
        return cursor.getString(idx); 
    }
}



    File imageFile = new File(getRealPathFromURI(selectedImage));
           String path= imageFile.toString();

3 个答案:

答案 0 :(得分:4)

主要的是,首先你需要在图像路径中提到你的图像类型......

然后您可以使用该imagepath检索:

String img_path = "image will be with image type";       
Bitmap bmp= BitmapFactory.decodeFile(img_path);
ImageView iv= (ImageView)findViewById(R.id.img);
iv.setImageBitmap(bmp);

您应该为清单文件添加权限:

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

答案 1 :(得分:2)

this为例。

您可以使用ImageView.setImageURI(..)方法。

preview.setImageURI(Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Echo/Images/"+file_name));

答案 2 :(得分:1)

Image paths stored in database with paths without any extensions

您需要在路径中提及图像类型。即image.png

您可以尝试以下示例。

String imagePath = "your image path with image type";   //eg. /sdcard/img.PNG      
  Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
  ImageView myImageView = (ImageView)findViewById(R.id.imageview);// your imageview
  myImageView.setImageBitmap(bitmap);