拍照裁剪报错 无法加载此图片
2017-01-02 03:31
91 查看
package com.jerry.uploadimg; import java.io.ByteArrayOutputStream; import java.io.File; import org.apache.http.Header; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.util.Base64; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.loopj.android.http.RequestParams; public class MainActivity extends Activity { private static final int PHOTO_REQUEST_CAMERA = 1;// 拍照 private static final int PHOTO_REQUEST_GALLERY = 2;// 从相册中选择 private static final int PHOTO_REQUEST_CUT = 3;// 结果 private ImageView mFace; private Bitmap bitmap; //(关键是这个地方,当修改为private static final String PHOTO_FILE_NAME = "/home/temp_photo.jpg 这是程序就会报错---无法加载此图片,这是为什么呢??) /* 头像名称 */ private static final String PHOTO_FILE_NAME = "/home/temp_photo.jpg"; private File tempFile; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.mFace = (ImageView) this.findViewById(R.id.iv_image); } /* * 从相册获取 */ public void gallery(View view) { // 激活系统图库,选择一张图片 Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, PHOTO_REQUEST_GALLERY); } /* * 从相机获取 */ public void camera(View view) { Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); // 判断存储卡是否可以用,可用进行存储 if (hasSdcard()) { intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment .getExternalStorageDirectory(), PHOTO_FILE_NAME))); } startActivityForResult(intent, PHOTO_REQUEST_CAMERA); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PHOTO_REQUEST_GALLERY) { if (data != null) { // 得到图片的全路径 Uri uri = data.getData(); Log.d("MainActivity", ""+uri); crop(uri); } } else if (requestCode == PHOTO_REQUEST_CAMERA) { if (hasSdcard()) { tempFile = new File(Environment.getExternalStorageDirectory(), PHOTO_FILE_NAME); String a = tempFile.getAbsolutePath(); String b = tempFile.getPath(); Log.d("MainActivity", "a=="+a); Log.d("MainActivity", "b=="+b); crop(Uri.fromFile(tempFile)); } else { Toast.makeText(MainActivity.this, "未找到存储卡,无法存储照片!", 0).show(); } } else if (requestCode == PHOTO_REQUEST_CUT) { try { bitmap = data.getParcelableExtra("data"); Log.d("MainActivity", "bitmap=="+bitmap); this.mFace.setImageBitmap(bitmap); boolean delete = tempFile.delete(); System.out.println("delete = " + delete); } catch (Exception e) { e.printStackTrace(); } } super.onActivityResult(requestCode, resultCode, data); } /** * 剪切图片 * * @function: * @author:Jerry * @date:2013-12-30 * @param uri */ private void crop(Uri uri) { // 裁剪图片意图 Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.putExtra("crop", "true"); // 裁剪框的比例,1:1 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); // 裁剪后输出图片的尺寸大小 intent.putExtra("outputX", 250); intent.putExtra("outputY", 250); // 图片格式 intent.putExtra("outputFormat", "JPEG"); intent.putExtra("noFaceDetection", true);// 取消人脸识别 intent.putExtra("return-data", true);// true:不返回uri,false:返回uri startActivityForResult(intent, PHOTO_REQUEST_CUT); } private boolean hasSdcard() { if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { return true; } else { return false; } } }
相关文章推荐
- android调用系统相机和相册进行拍照裁剪处理,解决不同安卓版本存在无法加载相册的问题,处理了是否有sd卡的存在的情况
- Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)
- Android 调用系统图片裁剪(解决“无法加载。”问题)
- 关于android6.0的拍照调不起裁剪程序,并提示“文件无效,无法加载”
- andorid 调用拍照功能回调的图片路径无法加载图片
- Android大图片裁剪终极解决方案(下:拍照截图)
- 通过js去预加载图片,无法正常取得图片高度和宽度的解决方法
- Ext界面下做图片动态加载的图片放大镜效果并解决IE6下遮罩mask无法遮盖HTML的select控件问题
- android调用系统拍照程序和从图库选取图片,返回后调用系统裁剪工具
- 无法加载图片信息处理
- 解决三星手机拍照后裁剪图片时横屏问题
- Android大图片裁剪终极解决方案(下:拍照截图)
- 解决IE6下JS动态设置图片IMG的SRC时图片无法加载错误的方法
- Android如何拍照或选择图片并裁剪
- 调用系统的图片裁剪无法返回
- IE无法加载图片或JavaScript
- Android大图片裁剪终极解决方案(下:拍照截图)
- nginx做反向代理,实现负载均衡基本配置。无法加载css,js或图片
- 页面无法实时加载图片
- android调用系统拍照程序和从图库选取图片,返回后调用系统裁剪工具