博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 获取系统图库和相机照片 裁剪并显示
阅读量:5965 次
发布时间:2019-06-19

本文共 3413 字,大约阅读时间需要 11 分钟。

接上一篇

package com.example.image;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.provider.MediaStore;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;public class MainActivity extends Activity implements OnClickListener {    private static final int TK_OK = 1; // 图库    private static final int XJ_OK = 2; // 相机    private static final int xj_OK_JQ = 3; // 相机拍照之后截取    private ImageView mImageView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mImageView = (ImageView) findViewById(R.id.iv);        findViewById(R.id.btn_xj).setOnClickListener(this);        findViewById(R.id.btn_tk).setOnClickListener(this);    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        if (resultCode == RESULT_OK) {            if (requestCode == TK_OK) {                Bundle bundle = data.getExtras();                Bitmap tkPhoto = (Bitmap) bundle.get("data");                mImageView.setImageBitmap(tkPhoto);            } else if (requestCode == XJ_OK) {                final Bitmap xjPhoto = data.getParcelableExtra("data");                if (xjPhoto != null) {                    doCropPhoto(xjPhoto);                }            } else if (requestCode == xj_OK_JQ) {                Bitmap xjJQPhoto = data.getParcelableExtra("data");                if (xjJQPhoto != null) {                    mImageView.setImageBitmap(xjJQPhoto);                }            }        }    }    protected void doCropPhoto(Bitmap data) {        Intent intent = getCropImageIntent(data);        startActivityForResult(intent, xj_OK_JQ);    }        /**     * 用于拍照之后返回的照片裁剪     * @param data     * @return     */    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", 128);        intent.putExtra("outputY", 128);        intent.putExtra("return-data", true);        return intent;    }    @Override    public void onClick(View v) {        if (v.findViewById(R.id.btn_xj) == v) {            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);            startActivityForResult(intent, XJ_OK);        } else if (v.findViewById(R.id.btn_tk) == v) {            Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);    //获取系统图库并裁剪            intent.setType("image/*");            intent.putExtra("crop", "true");            intent.putExtra("aspectX", 1);            intent.putExtra("aspectY", 1);            intent.putExtra("outputX", 300);            intent.putExtra("outputY", 300);            intent.putExtra("scale", true);            intent.putExtra("return-data", true);            intent.putExtra("outputFormat",                    Bitmap.CompressFormat.JPEG.toString());            intent.putExtra("noFaceDetection", true); // no face detection            startActivityForResult(intent, TK_OK);        }    }}

转载于:https://www.cnblogs.com/stareblankly/p/5051335.html

你可能感兴趣的文章
Linux内核——定时器和时间管理
查看>>
J2EE之初识JSP
查看>>
RabbitMq消息序列化简述
查看>>
i.e., e.g., etc.
查看>>
git忽略文件【转】
查看>>
Web上的支持的图片格式以及它们之间的区别
查看>>
随意而为
查看>>
jQuery监听文本框值改变触发事件(propertychange)
查看>>
HDU--2040
查看>>
甲骨文Java Archive
查看>>
查看数据库错误日志的位置
查看>>
电信网络拓扑图自动布局
查看>>
C#中List〈string〉和string[]数组之间的相互转换
查看>>
洛谷P1108 低价购买[DP | LIS方案数]
查看>>
通达信里的统计函数及区块背景函数
查看>>
redis主从配置<转>
查看>>
8 行 Node.js 代码实现代理服务器
查看>>
水印,图片验证码
查看>>
C#编程(七十六)----------使用指针实现基于栈的高性能数组
查看>>
PostgreSql 分页limit
查看>>