从图库中选取图片设置给ImageView,主要点:onActivityResult方法的使用,运行效果如下
1.布局文件中添加一个ImageView:
<ImageView android:paddingTop="50dp" android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:src="@drawable/head"/>2.主代码中MainActivity中: private ImageView mIv;//声明mIv对象 public static final int SET_PHOTO = 1;//请求码 mIv = (ImageView) findViewById(R.id.iv);//得到mIv对象 mIv.setOnClickListener(new View.OnClickListener() {//设置点击事件 @Override public void onClick(View view) { Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, SET_PHOTO);// 设定结果返回 } }); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (data != null) { switch (requestCode) { case SET_PHOTO: //打开相册并选择照片,这个方式选择单张 // 获取返回的数据,这里是android自定义的Uri地址 Uri selectedImage = data.getData(); String[] filePathColumn = {MediaStore.Images.Media.DATA}; // 获取选择照片的数据视图 Cursor cursor = getContentResolver(). query(selectedImage, filePathColumn, null, null, null); cursor.moveToFirst(); // 从数据视图中获取已选择图片的路径 int columnIndex = cursor.getColumnIndex(filePathColumn[0]); String picturePath = cursor.getString(columnIndex); cursor.close(); // 将图片显示到界面上 mIv.setImageBitmap(BitmapFactory.decodeFile(picturePath)); break; } } }3.注意添加SD卡读取权限
<!-- 读sd卡权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 源码下载地址:https://github.com/toly1994328/SetPhoto转载于:https://www.cnblogs.com/toly-top/p/9782041.html
相关资源:Android中从图库中选取图片实例详解