ImageView加载图片 路径没问题,图片不显示
先说一下如何获得本地图片的路径。
//点击图片事件
ib.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {getImageFromAlbum();}});//调用本地图片库protected void getImageFromAlbum() {Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(i, 2);}//获取本地图片路径并加载图片@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == 2 && resultCode == RESULT_OK) {Uri u = data.getData();ContentResolver cr = AddActivity.this.getContentResolver();try {Bitmap bmp = BitmapFactory.decodeStream(cr.openInputStream(u));ib.setImageBitmap(bmp);String[] filePathColumn = { MediaStore.Images.Media.DATA };Cursor cursor = context.getContentResolver().query(u,filePathColumn, null, null, null);cursor.moveToFirst();int columnIndex = cursor.getColumnIndex(filePathColumn[0]);//Path就是图片在储存卡所在的位置path = cursor.getString(columnIndex);} catch (Exception e) {e.printStackTrace();}}super.onActivityResult(requestCode, resultCode, data);}
ImageView通过加载路径显示图片。
Bitmap bmp= BitmapFactory.decodeFile(path);ib.setImageBitmap(bmp);
当然还要在AndroidManifest.xml文件中加入权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
但是即使是这样,ImageView仍然无法显示图片,可是路径是对的啊,权限也已经加上了啊。
AS会显示这个错误:
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/Download/timg (2).jpg (Permission denied)
提示的错误就是没有加载这个图片的权限。
可是刚刚不是已经在AndroidManifest.xml这个文件中加入了吗?
通过一番调查发现,原来android6.0之后不仅需要在Mainfest里面添加权限,还需要添加运行时权限。
这样的话就得在程序中加入如下代码:
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_add);//允许开启访问本地文件权限requestWritePermission();init();OnClick();}private void requestWritePermission(){if (ActivityCompat.checkSelfPermission(AddActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(AddActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);}}
这样的话在运行程序时,如果加载图片,它会有如下提示:
就是问你这个程序能否访问你的设备,此时点击ALLOW,就会显示图片了。
ImageView加载图片 路径没问题,图片不显示相关推荐
- ImageView 加载本地(手机)图片
*把手机里的某张照片加载到ImageView里的方法有三种: ivPicture 为 获取ImageView里的控件名 第一种: ps:若多次设置:setImageURI(uri),若uri不变,即使 ...
- android 图片变量,Android开发实现ImageView加载摄像头拍摄的大图功能
本文实例讲述了Android开发实现ImageView加载摄像头拍摄的大图功能.分享给大家供大家参考,具体如下: 这个方法是从官方demo中摘录的,在此记录学习. 权限 android:name=&q ...
- iOS 加载本地HTML文件,图片没显示出来的问题
iOS 加载本地HTML文件,图片没显示出来的问题,一般都是路径的问题.在HTML中,用的是绝对路径类似,而在项目中,一般 都是相对路径.例如:在HTML中, src="images/qq. ...
- el-image中src加载assets路径下图片使用require避免加载不到
场景 el-image中图片的数据源加载assets路径下的照片. 正确加载方式. <el-imagestyle="width: 732px; height: 48px":s ...
- android 加载网络bitmap图片 oom 简书_Android常见问题--ImageView加载图片OOM
开发中给ImageView加载一个高质量图片时,APP抛出了"Canvas: trying to draw too large(840253440bytes) bitmap."的异 ...
- Android开发 - ImageView加载Base64编码的图片
在我们开发应用的过程中,并不是所有情况下都请求图片的URL或者加载本地图片,有时我们需要加载Base64编码的图片.这种情况出现在服务端需要动态生成的图片,比如: 二维码 图形验证码 - 这些应用场景 ...
- Android LruCache和DiskLruCache相结合打造图片加载框架(仿微信图片选择,照片墙)
LrcCache和DiskLruCache相结合打造图片加载框架 转载请标明出处:http://blog.csdn.net/luoshishou/article/details/51299169 源码 ...
- vue本地项目配置图片加载失败_vue图片加载失败时用默认图片替换的方法
vue图片加载失败时用默认图片替换的方法 前言 本文主要给大家介绍的关于vue实现图片加载失败时用默认图片替换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下 原理 ...
- Glide加载自签名的https图片
前言 Glide默认加载http或者通过CA认证了的https图片都是没问题的,但是当加载自签名的https图片的时候就会报如下错误(证书路径验证异常). 一.原理 对于加载自签名的https图片,我 ...
- android动画超出圆角,Android关于Glide的使用(高斯模糊、加载监听、圆角图片)
高斯模糊.加载监听.圆角图片这些相信大家都很熟悉,那如何实现这些效果,请大家参考本文进行学习. 1.引用 compile 'com.github.bumptech.glide:glide:3.7.0' ...
最新文章
- LeetCode Rotate Array(数组的旋转)
- 不同分辨率的LCM进行兼容
- htmlcss实例小项目_HTMLCSS学习笔记(十九)-- 媒体查询
- 《Adobe After Effects CS6中文版经典教程》——1.3 创建合成图像与组织图层
- 反编译工具dnspy的安装与使用;
- Python 依赖库
- 使用java将字符串写入到指定的文件中
- php+mysql记事本_一个简单记事本php操作mysql辅助类创建
- redis——redis事务相关处理
- 近期两篇双目图像超分辨算法论文解读 |AAAI2020 SPL2020
- 依据imu姿态角计算z轴倾角_[姿态估计] DenseFusion详解
- linux php zend load,在Linux系统中为PHP5.3安装Zend Guard Loader
- MongoDB(一)——简介
- ams1117 lm317 对比_最受电子工程师欢迎的10款经典稳压电源器件,电路当中经常用到...
- linux用迅雷下载软件,wine 迅雷下载安装(wine 迅雷极速版)
- c语言水王争霸链表,水王争霸
- CSS3简明教程-1.1.CSS3是什么
- 向量余弦值(Cosine)(C#)
- 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
- matlab矩阵转化成一行向量