关于小米手机无法将照片添加到图库解决方法 |
您所在的位置:网站首页 › 小米无法保存图片怎么办 › 关于小米手机无法将照片添加到图库解决方法 |
安卓把照片加载到图库 (Add the Photo to a Gallery)
http://developer.android.com/intl/zh-cn/training/camera/photobasics.html 官方的指导已经说的很明确了,但有几个需要注意的小地方,稍不留神就会犯错 1 官方文档不严谨在创建文件的最后有这样一句 mCurrentPhotoPath = "file:" + image.getAbsolutePath(); return image;这是添加到相册的代码 private void galleryAddPic() { Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); File f = new File(mCurrentPhotoPath); Uri contentUri = Uri.fromFile(f);//这一句有错误 mediaScanIntent.setData(contentUri); this.sendBroadcast(mediaScanIntent); }因为先前已经增加了file:”,所以再一次解析uri就会有问题,应当Uri.fromfile时候直接传入保存的图片就行 2 小米手机无法添加到相册注意在创建文件的时候的这一句 File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);小米手机会发现在sd卡下找不到Picture这一个文件夹,默认照相机是放在sdcard下DCIM/Camera这一个文件夹,这个文件夹对外是可读可写的,也就是说我们应用通过调用系统相机,可以把图片放在这里 3 全部代码 //点击这个按钮开启系统相机,并且添加到相册 public void photo(View view){ try { Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); photoFile = createImageFile(); takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile)); startActivityForResult(takePictureIntent, 1); //startActivity(takePictureIntent); } catch (IOException e) { e.printStackTrace(); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // super.onActivityResult(requestCode, resultCode, data); Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); File f = new File(mCurrentPhotoPath); Uri contentUri = Uri.fromFile( photoFile ); System.out.println(contentUri.toString()); mediaScanIntent.setData(contentUri); this.sendBroadcast(mediaScanIntent); } private File createImageFile() throws IOException { // Create an image file name /* String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String imageFileName = "JPEG_" + timeStamp + "_"; File storageDir = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES); File image = File.createTempFile( imageFileName, ".jpg", storageDir ); */ String timeStamp = new SimpleDateFormat("HHmmss").format(new Date()); File image = new File(Environment.getExternalStorageDirectory(),"DCIM/Camera/"+timeStamp+".jpg"); // Save a file: path for use with ACTION_VIEW intents mCurrentPhotoPath = image.getAbsolutePath(); return image; } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |