文档章节

用系统工具剪裁图片的两种方法

yolinfeng
 yolinfeng
发布于 2015/03/09 00:56
字数 211
阅读 34
收藏 0

方法一

判断是否有SD卡

public static boolean hasSDCard() {
  return Environment.MEDIA_MOUNTED.equals(Environment
    .getExternalStorageState());
 }

选择图库路径

if (hasSDCard()) {
   photoAlbum = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
  } else {
   photoAlbum = MediaStore.Images.Media.INTERNAL_CONTENT_URI;
  }

选择图片

Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setDataAndType(kaibesimApplication.getPhotoAlbum(), "image/*");
    startActivityForResult(intent, requestCodeChangePhoto);

剪裁图片,返回的结果里

uri = data.getData();
startImageAction(uri, 200, 200, requestCodeGetContent);

private void startImageAction(Uri uri, int outputX, int outputY,
   int requestCode) {
Intent intent = new Intent("com.android.camera.action.CROP");
  intent.setDataAndType(uri, "image/*");
  intent.putExtra("crop", "true");
  intent.putExtra("aspectX", 1);
  intent.putExtra("aspectY", 1);
  intent.putExtra("outputX", outputX);
  intent.putExtra("outputY", outputY);
  intent.putExtra("scale", true);
//  intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
  intent.putExtra("return-data", true);
  intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
  intent.putExtra("noFaceDetection", true); // no face detection
  startActivityForResult(Intent.createChooser(intent, "选择图片"), requestCode);
}

方法二

这个方法比较简单,使用的是Intent.ACTION_GET_CONTENT

startImageAction(200, 200, requestCodeGetContent); 

private void startImageAction(int outputX, int outputY, int requestCode) {
  Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
  intent.setType("image/*");
  intent.putExtra("crop", "true");
  intent.putExtra("aspectX", 1);
  intent.putExtra("aspectY", 1);
  intent.putExtra("outputX", outputX);
  intent.putExtra("outputY", outputY);
  intent.putExtra("scale", true);
  // intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
  intent.putExtra("return-data", true);
  intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
  intent.putExtra("noFaceDetection", true); // no face detection
  startActivityForResult(intent, requestCode);
 }

© 著作权归作者所有

yolinfeng
粉丝 12
博文 196
码字总数 11946
作品 0
珠海
架构师
私信 提问
基于URL的图片处理库--EvaThumber

EvaThumber 是一个基于URL的轻量级图片处理库,支持缩放/旋转/截取/滤镜等多种常用图片处理,支持设置水印/二维码,并且可以进行面部识别以及PNG优化压缩,所有处理仅仅需要通过更改图片的U...

AlloVince
2013/03/05
6.4K
3
纯前端 Canvas 实现 HTML 转图片,自动生成微信阅读卡片

最近公司微信公众号想使用 Apple 式的圆角阴影卡片做文章推荐。这种效果用 Adobe XD 可以轻松做出来,但是没法要求所有编辑都去学习新软件,所以就打算用前端实现一个小工具。效果如下: 功能...

brickyang
2018/08/28
0
0
jQuery.cropper中文API详解

cropper提供了大量的参数、方法和事件供图片的剪裁操作。 安装 可以通过Bower或NPM来安装该插件。 使用方法 使用该图片剪裁插件首先要引入必要的js和css文件。 HTML结构 可以将图片或canvas直...

码上中国博客
2016/09/04
7.8K
0
android 使用photoshop 裁剪图片

今天,简单讲讲如何使用photoshop 剪裁图片。 之前,由于修改界面的需要,所以之前的图片不符合要求了。但是我们这边又没有美工,所以自己在网上搜索了如何使用photoshop 裁剪图片,最终是剪...

bzlj2912009596
2018/04/17
0
0
实战:七步教你Android图片拍摄及剪裁

  【IT168技术】现在,很多Android设备都有内置的摄象头了,在本教程中,我们将学习如何在程序中调用Android手机中的摄象头进行图像的摄制,并且如何在拍摄照片后,如何利用用户已经安装在设备中...

作者:廖煜嵘
2012/08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

六、Spring Cloud之配置中心config

前言 前面我们讲了微服务的注册中心、负载均衡、熔断处理、网管服务。接下来我们讲配置中心,为什么要用配置中心呢? 其实我们接触一段时间就可以发现,我们的项目还是非常多的,每个项目都有...

quellanan2
7分钟前
13
0
在Android的EditText视图中允许多行?

如何在Android的EditText视图中允许多行? #1楼 这对我有用 ,实际上这两个属性很重要: inputType和lines 。 此外,您可能需要一个滚动条,下面的代码显示了如何制作一个: <EditText ...

技术盛宴
10分钟前
13
0
分享自己写的JS版日期格式化和解析工具类,绝对好用!

前言 本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了。 原文链接 日期格式化 2.1. 使用说明 formatDate(date, fmt),其中fmt支持...

SuShine
20分钟前
27
0
快递鸟api物流查询接口实现订阅物流轨迹单号查询功能对接调用

背景: 分享一篇关于在电商系统中同步物流轨迹到本地服务器的文章,当前方案使用了快递鸟集成api做为数据来源接口,这个接口是免费使用的,不过提供的功能还是非常强大的,有专门的售后维护团...

程序的小猿
25分钟前
24
0
Day08多态,abstract,接口

1.A:多态的概述:事物存在的多种形态。 B:多态前提:要有继承关系,方法重写和父类引用子类对象。 父类引用子类对象:Animal a = new Cat(); a.eat(); //效果等同于c.eat(); 2.多态中的...

Lao鹰
30分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部