android图片截取的两种形式
2016-08-28 18:44
399 查看
android图片截取的两种方式
拍照截取
打开相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
截图
Intent intent = getCropImageIntent(data);
处理获取到的图片
public static Intent getCropImageIntent(Bitmap data) {
// intent.putExtra(“outputX”, 300);
// intent.putExtra(“outputY”, 300);
}
取得数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
选择截取
关键代码
Intent innerIntent = new Intent(Intent.ACTION_GET_CONTENT);
//调用成功反回方法
// 这里处理逻辑
权限
文章主要提供android系统上拍照图片截取和图片 选择截取 两种方式,适用于app头像选择等环境。微笑
拍照截取
打开相机
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,“自定义”);
截图
Intent intent = getCropImageIntent(data);
startActivityForResult(intent, “自定义”);
处理获取到的图片
public static Intent getCropImageIntent(Bitmap data) {
Intent intent = new Intent("com.android.camera.action.CROP"); intent.setType("image/*"); intent.putExtra("data", data); intent.putExtra("crop", "true"); intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1);
// intent.putExtra(“outputX”, 300);
// intent.putExtra(“outputY”, 300);
intent.putExtra("return-data", true); intent.putExtra("outputFormat", "JPEG"); return intent;
}
取得数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub switch(requestCode){ // xxxxx Bitmap photo = data.getParcelableExtra("data"); }
}
选择截取
关键代码
Intent innerIntent = new Intent(Intent.ACTION_GET_CONTENT);
innerIntent.putExtra("crop", "true");// 剪辑方框 innerIntent.putExtra("aspectX", 1); // 放大和缩小 innerIntent.putExtra("aspectY", 1); // 如果aspectX和aspectY同时设置为相同值的话则为矩形 innerIntent.setType("image/*"); // 查看类型 详细的类型在 com.google.android.mms.ContentType tempFile=new File("/sdcard/"+Calendar.getInstance().getTimeInMillis()+".jpg"); // 以时间秒为文件名 File temp = new File("/sdcard/");//目录文件夹,如果不存在则创建 if (!temp.exists()) { temp.mkdir(); } innerIntent.putExtra("output", Uri.fromFile(tempFile)); //传入目标文件 innerIntent.putExtra("outputFormat", "JPEG"); //文件格式 Intent wrapperIntent = Intent.createChooser(innerIntent, "先择图片"); //开始 并设置标题 startActivityForResult(wrapperIntent, 1); // 设置返回 码为 1 与onActivityResult
//调用成功反回方法
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 1:
// 这里处理逻辑
break; } }
权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
相关文章推荐
- Android北京本地新闻客户端,初级练习项目
- Android中退出软件的两种形式
- Android Touch事件分发机制学习
- android 性能分析、优化
- Android基础第三篇(上)
- Android中getChildAt()方法介绍
- Android中EditText的错误消息显示
- Android获取屏幕的高度和宽度
- Android开发艺术探索--第二章IPC机制(1)
- Fragment的数据交互 一 使用Handler
- Android BLE基础框架使用详解
- Android4.2使用TextClock出现"HH:00"的问题的解决方案
- Android知识点总结
- EventBus 3.0 源码简要分析
- Android AIDL的使用
- Android源码分析-全面理解Context
- Android SDK Manager国内无法更新的解决方案(亲测有效)
- Android Bitmap压缩图像的正确方法(compress的误区)
- ubuntu14.04 安卓genymotion
- Android SDK 目录详解