`

获取系统相机的图片并加入剪切功能

 
阅读更多
package com.example.imagedemo001;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

/**
 * 
 * 功能:调用Android系统的的照相功能,获取图片信息 <br />
 * 日期:2012-12-26<br />
 * 版本:ver 1.0<br />
 * 
 * @author fighter
 * @since
 */
public class Main extends Activity {
	/** 调用系统相机 */
	private final int TAKE_PICTURE = 1001;
	/* 将图片切割 */
	private final int FORMAT_PICTURE = 1003;

	private Button btnTake;
	private ImageView imgView;

	private OnClickListener btnClickListener;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		this.initWidget();
		this.initParam();
		this.initBtnListener();
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if (TAKE_PICTURE == requestCode && RESULT_OK == resultCode
				&& null != data) {
			Bitmap bitmap = data.getParcelableExtra("data");
			if(null != bitmap){
				doCorpImage(bitmap);
			}
		}else if(FORMAT_PICTURE == requestCode && RESULT_OK == resultCode
				&& null != data){
			Bitmap bitmap = data.getParcelableExtra("data");
			if(null != bitmap){
				this.imgView.setImageBitmap(bitmap);
			}
		}
		super.onActivityResult(requestCode, resultCode, data);
	}

	private void initWidget() {
		this.btnTake = (Button) findViewById(R.id.btnTake);
		this.imgView = (ImageView) findViewById(R.id.imgView);
	}

	private void initParam() {
		this.btnClickListener = new BtnOnClickLisenerImpl();
	}

	private void initBtnListener() {
		this.btnTake.setOnClickListener(btnClickListener);
	}

	private void doCorpImage(Bitmap bm){
		Intent intent = getCropImageIntent(bm);
		startActivityForResult(intent, FORMAT_PICTURE);
	}
	
	/*
	 * 格式后的参数...
	 * */
	private Intent getCropImageIntent(Bitmap bm) {
		Intent intent = new Intent("com.android.camera.action.CROP");
		intent.setType("image/*");
		intent.putExtra("data", bm);
		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;
	}

	class BtnOnClickLisenerImpl implements OnClickListener {

		@Override
		public void onClick(View v) {
			switch (v.getId()) {
			case R.id.btnTake:
				takePicture((Button) v);
				break;

			default:
				break;
			}
		}

		private void takePicture(Button btn) {
			Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
			startActivityForResult(intent, TAKE_PICTURE);
		}

	}
}

 

分享到:
评论

相关推荐

    Android图片剪切并存入数据库

    本项目"Android图片剪切并存入数据库"正是关注这个场景,下面将详细解释实现这个功能的关键知识点。 首先,我们需要使用`Intent`来实现从相册或相机获取图片的功能。通过启动一个系统级别的`Intent`,用户可以选择...

    常用办公工具软件的使用-PPT.ppt

    ACDSee 7.0支持批量导出图片功能,用户可以从数码相机或光盘中一次性选择多张图片,然后导出至本地硬盘或其他存储设备上。 #### 二、压缩软件WinRAR **2.1 WinRAR 3.41概述** WinRAR是一款广泛使用的压缩软件,...

    Gilisoft Video Editor v14.5.0一款支持多种形式的视频编辑操作和多种音频编辑的工具

    Gilisoft Video Editor14.50 中文正式版是一款强大的视频编辑软件,几乎每个人都可以拍摄视频,无论是使用数码相机,智能手机还是专用摄像机,但原始视频观看起来并不好玩。GiliSoft视频编辑器可以帮助您制作精彩的...

    计算机入门基础知识 (2).docx

    常见的文字编辑技巧包括换行、分段、移动光标、字符插入、字符修改、字符删除、复制、剪切、粘贴、查找和替换、段落调整、加入空格或空行等。 三、Internet应用 Internet应用是指使用Internet来浏览、下载和分享...

    网管教程 从入门到精通软件篇.txt

    Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我们整理了这份实用的秘笈。 ...

    计算机入门基础知识 (2).pdf

    * 掌握基本的文字编辑技巧(如:换行、分段、移动光标、字符插入、字符修改、字符删除、复制、剪切、粘贴、查找和替换、段落调整、加入空格或空行等基本编辑技巧) * 掌握常用的格式设置(如:字体、字号、行距、字...

    麦芒c199说明书

    包括获取应用程序、安装应用程序、查看应用程序、卸载应用程序等功能,支持应用程序缓存清理。 - **获取应用程序**:通过应用商店下载应用。 - **安装应用程序**:安装下载的应用程序。 - **查看应用程序**:管理已...

    计算机入门基础知识.pdf

    * 掌握基本的文字编辑技巧(如:换行、分段、移动光标、字符插入、字符修改、字符删除、复制、剪切、粘贴、查找和替换、段落调整、加入空格或空行等基本编辑技巧) * 掌握常用的格式设置(如:字体、字号、行距、字...

    iPhone应用程序编程指南

    - **Apple Developer Program**:加入官方开发者计划,获取最新技术资讯和高级开发资源。 - **在线论坛与社区**:参与Stack Overflow、GitHub等平台的讨论,解决开发难题。 - **官方文档与教程**:定期查阅Apple官方...

    CAD 2007 快捷键大全

    - **Shift+C**:显示/隐藏相机,**Shift+O**:显示/隐藏几何体,**G**:显示/隐藏网格,**Shift+H**:显示/隐藏帮助物体,**Shift+L**:显示/隐藏光源,**Shift+P**:显示/隐藏粒子系统,**Shift+W**:显示/隐藏空间...

Global site tag (gtag.js) - Google Analytics