【项目中】Android 小米红米手机无法读取照片图片路径的问题
来源:互联网 发布:excel数据 access 编辑:程序博客网 时间:2024/05/17 04:25
前两天在项目中实现了可本地选择照片的功能,今天同事告诉我他的小米手机没有办法选择照片,点击选中的照片后总是无法将照片传入到应用内,而在选择图片页面选择“本地”,就可以成功选择照片和图片,至于原因还不得而知,其他品牌手机暂时没有这个问题。最后经过查找资料,已成功解决问题,解决方法如下:
Android程序内,从本地文件夹读取图片的功能实现,如下:
private void openAlbum(int number) {if (image_path.size() == number) {Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");startActivityForResult(intent, RESULT_CANCELED);}}
Uri uri = data.getData(); String path = uri.getPath();
解决方案:在onActivityResult中,按照如下的方式,就可以在所有的手机上使用,不会出问题。
if (data != null) { Uri uri = data.getData(); if (!TextUtils.isEmpty(uri.getAuthority())) { Cursor cursor = getContentResolver().query(uri, new String[] { MediaStore.Images.Media.DATA },null, null, null); if (null == cursor) { Toast.makeText(this, "图片没找到", Toast.LENGTH_SHORT).show(); return; } cursor.moveToFirst(); path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)); cursor.close(); } else { path = uri.getPath(); } }else{ Toast.makeText(this, "图片没找到", Toast.LENGTH_SHORT).show(); return; }这个path就是我们要的图片路径,我们就可以用它去返回我们选择的照片。
完整代码:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode == Activity.RESULT_OK) {try {if (data != null) { Uri uri = data.getData(); if (!TextUtils.isEmpty(uri.getAuthority())) { Cursor cursor = getContentResolver().query(uri, new String[] { MediaStore.Images.Media.DATA },null, null, null); if (null == cursor) { Toast.makeText(this, "图片没找到", Toast.LENGTH_SHORT).show(); return; } cursor.moveToFirst(); path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)); cursor.close(); } else { path = uri.getPath(); } }else{ Toast.makeText(this, "图片没找到", Toast.LENGTH_SHORT).show(); return; } Bitmap bmp = BitmapUtils.getimage(path);Drawable drawable = new BitmapDrawable(bmp);zooDrawable.add(drawable);if (BitmapUtils.isAvaliable()) {image_number++;BitmapUtils.saveBitmapToFile(bmp, BitmapUtils.SD_PATH + "/AITGou/" + image_number + ".jpg");image_path.add(BitmapUtils.SD_PATH + "/AITGou/" + image_number + ".jpg");Log.e("image_path", BitmapUtils.SD_PATH + "/AITGou/" + image_number + ".jpg");} else {image_path.add(path);}switch (image_path.size()) {case 1:imageview[0].setBackground(drawable);textview[0].setVisibility(View.VISIBLE);framelayout[1].setVisibility(View.VISIBLE);imageview[1].setVisibility(View.VISIBLE);imageview[1].setBackgroundResource(R.drawable.product_tagging_add);break;case 2:imageview[1].setBackground(drawable);textview[1].setVisibility(View.VISIBLE);framelayout[2].setVisibility(View.VISIBLE);imageview[2].setVisibility(View.VISIBLE);imageview[2].setBackgroundResource(R.drawable.product_tagging_add);break;case 3:imageview[2].setBackground(drawable);textview[2].setVisibility(View.VISIBLE);framelayout[3].setVisibility(View.VISIBLE);imageview[3].setVisibility(View.VISIBLE);imageview[3].setBackgroundResource(R.drawable.product_tagging_add);break;case 4:imageview[3].setBackground(drawable);textview[3].setVisibility(View.VISIBLE);framelayout[4].setVisibility(View.VISIBLE);imageview[4].setVisibility(View.VISIBLE);imageview[4].setBackgroundResource(R.drawable.product_tagging_add);project_edit_ll.setVisibility(View.VISIBLE);break;case 5:imageview[4].setBackground(drawable);textview[4].setVisibility(View.VISIBLE);framelayout[5].setVisibility(View.VISIBLE);imageview[5].setVisibility(View.VISIBLE);imageview[5].setBackgroundResource(R.drawable.product_tagging_add);break;case 6:imageview[5].setBackground(drawable);textview[5].setVisibility(View.VISIBLE);framelayout[6].setVisibility(View.VISIBLE);imageview[6].setVisibility(View.VISIBLE);imageview[6].setBackgroundResource(R.drawable.product_tagging_add);break;case 7:imageview[6].setBackground(drawable);textview[6].setVisibility(View.VISIBLE);framelayout[7].setVisibility(View.VISIBLE);imageview[7].setVisibility(View.VISIBLE);imageview[7].setBackgroundResource(R.drawable.product_tagging_add);break;case 8:imageview[7].setBackground(drawable);textview[7].setVisibility(View.VISIBLE);break;default:break;}} catch (Exception e) {e.printStackTrace();}}
1 1
- 【项目中】Android 小米红米手机无法读取照片图片路径的问题
- 小米手机无法读取图片路径的问题
- Android--使用手机拍照获取图片路径,小米手机选择照片问题处理
- Android基于红米系列手机读取本地图片路径失败的解决方案
- android 小米手机 相册图片路径空指针的问题
- android 解决小米手机上选择照片路径为null的问题
- android红米等关于读取本地文件夹图片获取路径的问题的解决
- android红米等关于读取本地文件夹图片获取路径的问题的解决
- 红米手机在Android开发中无法获取data/data中数据的问题
- Android Studio在小米红米note 4X上无法安装应用的问题
- android解决小米手机上选择照片路径为null问题
- Android 关于小米手机拍照图片返回路径的处理
- Android 上传头像,解决小米3等手机无法直接得到裁剪照片问题
- 解决小米、红米及其他 Android 手机无法在 Mac 下进行真机调试
- android studio安装到小米手机,无法安装的问题
- android 小米手机不能正确获取图片uri的问题
- android 拍照的照片方向问题,读取图片EXIF信息
- AlertDialog 无法弹出的问题,小米手机
- Android获取32位应用签名及如何判断该签名为debug还是release
- Table tr td th表格使用案例
- Android 点击任意位置隐藏
- Rift Getting Started Guide
- underscore.js中template
- 【项目中】Android 小米红米手机无法读取照片图片路径的问题
- 微信加密解密,java.security.InvalidKeyException:illegal Key Size,WTF
- Android Parcelable
- 在线实时大数据平台Storm单机部署
- 任一个英文的纯文本文件,统计其中的单词出现的个数。
- 摄像机的左右前后移动以及旋转
- SQL表连接查询(inner join、full join、left join、right join)
- JAVA自带的进制转换函数
- hdu 1503 Advanced Fruits