weixin_40371800
mashiro_dell
采纳率42.9%
2018-01-05 08:35

eclipse安卓开发时访问sd卡相册,但是用imageview无法显示图片,急!!!!!

5
已采纳

代码如下:

main.java:
//调用系统相册
public void onClick(View v) {

    Intent intent = new Intent(Intent.ACTION_PICK,
    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(intent, IMAGE);
}


//这里获取图片路径并显示
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == IMAGE && resultCode == Activity.RESULT_OK && data != null) {
        Uri selectedImage = data.getData();
        String[] filePathColumns = {MediaStore.Images.Media.DATA};
        Cursor c = getContentResolver().query(selectedImage, filePathColumns, null, null, null);
        c.moveToFirst();
        int columnIndex = c.getColumnIndex(filePathColumns[0]);
        String imagePath = c.getString(columnIndex);
        ImagePath=columnIndex;
        showImage(imagePath);//调用图片显示方法
        c.close();
    }
}

//显示图片
private void showImage(String imaePath){
    Bitmap bm = BitmapFactory.decodeFile(imaePath);
    ((ImageView)findViewById(R.id.ImageView01)).setImageBitmap(bm);
}

main.xml:

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="@string/open"/>
android:layout_width="fill_parent"
android:layout_height="fill_parent" />

        到底是哪里出问题了呢?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答

  • u010220400 小V丫 3年前

    我看了下,你应该是没有添加读取sd卡的权限,你的图片是sd卡里面的,
    当没有添加权限时, Bitmap bm = BitmapFactory.decodeFile(imaePath);,bm获取到的值为null
    所以,在AndroidManifest.xml中加上

    就可以了

    点赞 2 评论 复制链接分享
  • liuxingyuzaixian 流星雨在线 3年前

    安卓6.0以上要动态权限

    点赞 评论 复制链接分享
  • cheryl_chenxin cheryl_chenxin 3年前

    如果你只在AndroidManifest加了权限,那在高版本的手机上也还是会报错,还应该加上动态权限管理,算是个系统兼容问题吧,android越来越注重保密性,很多默认打开的权限现在都要手动控制了

    点赞 评论 复制链接分享
  • YXTS122 YXTS122 3年前

    代码没问题,就是没有添加权限。。。。。。。。。

    点赞 评论 复制链接分享
  • Paradox130766 Paradox130766 3年前

    要在配置添加相应权限才行

    点赞 评论 复制链接分享
  • nailsoul nailsoul 3年前

    android 4.4后 通过相册获取图片的方式改变了 需要适配api level 而且不同的图库获取方式不同 你这是4.4之前的获取方式
    4.4以后的获取方式 http://blog.csdn.net/zbjdsbj/article/details/42387551

    点赞 评论 复制链接分享
  • qq_37043246 路边小树苗 3年前

    主要是权限

    点赞 评论 复制链接分享
  • qq_37680136 qq_37680136 3年前

    看下你的照片有多大 然后看看权限加了没

    点赞 评论 复制链接分享
  • u010220400 小V丫 3年前
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    
    点赞 评论 复制链接分享