博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
系统拍照,显示
阅读量:2299 次
发布时间:2019-05-09

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

package com.ouling.ex_camera;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;import android.widget.Toast;public class Ex_cameraActivity extends Activity {	Button btn_sys, btn_tocamera;	ImageView image;	String strImgPath = "/sdcard/syscamera.jpg";// 拍照保存文件路径	final int RESULT_CAMERA = 1;// 标识有系统拍照界面返回	final int RESULT_SELF=2;//标识自定义拍照	/** Called when the activity is first created. */	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		image = (ImageView) findViewById(R.id.img);		btn_sys = (Button) findViewById(R.id.sys_camera);		btn_tocamera=(Button)findViewById(R.id.self_camera);		btn_sys.setOnClickListener(listener);		btn_tocamera.setOnClickListener(listener);	}	OnClickListener listener = new OnClickListener() {		@Override		public void onClick(View v) {			// TODO Auto-generated method stub			switch (v.getId()) {			case R.id.sys_camera:				// 调用系统拍照功能				cameraMethod();				break;			case R.id.self_camera:				Intent intent=new Intent(Ex_cameraActivity.this, Self_camera.class);//				startActivity(intent);				startActivityForResult(intent, RESULT_SELF);				Log.i("self_camera","self_camera startActivityForResult");				break;			default:				break;			}		}	};	// 调用系统拍照	private void cameraMethod() {		Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);		File out = new File(strImgPath);		Uri uri = Uri.fromFile(out);		imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);		imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);		//startActivityForResult(imageCaptureIntent, RESULT_CAMERA);				//final int TAKE_PICTURE = 1;//为了表示返回方法中辨识你的程序打开的相机		//关键是这里:startActivityForResult(new Intent("android.media.action.IMAGE_CAPTURE"), TAKE_PICTURE);		startActivityForResult(new Intent("android.media.action.IMAGE_CAPTURE"), RESULT_CAMERA);	}	@Override	protected void onActivityResult(int requestCode, int resultCode, Intent data) {		// TODO Auto-generated method stub		 super.onActivityResult(requestCode, resultCode, data);		if (requestCode == RESULT_CAMERA) {			if (resultCode == RESULT_OK) {				// 拍照图像显示				try				{				//Bitmap bm = (Bitmap) data.getExtras().get("data");					//Bitmap bm = (Bitmap) data.getExtras().getParcelable("data");					Bundle bundle;					if (data==null)					{						Log.i("data null","data=null");						//return;						bundle=this.getIntent().getExtras();					}else					{						bundle=data.getExtras();					}															if (bundle==null)					{						Log.i("bundle null","bundle=null");						return;					}											Bitmap bm = (Bitmap)bundle.get("data");					if (bm==null)				{					Log.i("bmnull","bm=null");				}				image.setImageBitmap(bm);// 图像显示在ImageView视图中				File myCaptureFile = new File(strImgPath);				try {					BufferedOutputStream bos = new BufferedOutputStream(							new FileOutputStream(myCaptureFile));					/* 采用压缩转档方法 */					bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);					/* 调用flush()方法,更新BufferStream */					bos.flush();					/* 结束OutputStream */					bos.close();				} catch (FileNotFoundException e) {					// TODO Auto-generated catch block					e.printStackTrace();					Toast.makeText(this, "没有找到照片文件", 1000).show();				} catch (IOException e) {					// TODO Auto-generated catch block					e.printStackTrace();					Toast.makeText(this, e.toString(), 1000).show();				}				}catch(Exception e)				{					Log.i("bmException",e.toString());				}			}		}				else if (requestCode==RESULT_SELF) {			if (resultCode==RESULT_OK) {				Log.i("自定义拍照","resultCode==RESULT_OK");				try				{				//显示图片				String pathString=(String) data.getExtras().get("PATH");				Bitmap bitmap=BitmapFactory.decodeFile(pathString);				image.setImageBitmap(bitmap);				System.out.println("自定义拍照显示");				}catch(Exception e)				{					Log.i("自定义拍照Exception",e.toString());				}			}		}	}}

转载地址:http://vbkib.baihongyu.com/

你可能感兴趣的文章
C语言中的-------结构
查看>>
栈的应用---平衡符号
查看>>
用栈计算逆波兰式
查看>>
利用数组栈将中缀表达式转换成后缀表达式
查看>>
SpringBoot + Mybatis-plus实战之Mybatis-plus的一级缓存、二级缓存
查看>>
Java 字符串型的日期对比大小
查看>>
Java常见异常类型
查看>>
aviator 实现 List 的求和、排序、最大、最小值
查看>>
android内存碎片问题优化梳理
查看>>
android相机场景下整机内存分析
查看>>
armcm3权威指南笔记----arm编程中地址未对齐方面的影响
查看>>
MMU,cache,裸机嵌入式C编程还有带操作系统的编程
查看>>
软件工程式工作—NQS组历程
查看>>
iOS 网络编程4-发布异步请求
查看>>
iOS开发何如在调试的时候轻松找到程序在哪里崩溃
查看>>
iOS模拟器问题: An error was encountered while running (Domain = FBSOpenApplicationErrorDomain, Code = 4)
查看>>
iOS8 模拟器键盘输入中文
查看>>
表格视图
查看>>
在表格中实现搜索
查看>>
点击表格中任意一行,转到相应的页面
查看>>