照相一

package com.example.aa;




import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.provider.MediaStore.Images.Media;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import android.text.format.DateFormat;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

public class MainActivity extends Activity {
	Button but;
    Uri photoUri;
    ImageView im;
    String picPath = null;
    private static String photoPath = "/sdcard/MyPic/";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		but=(Button) findViewById(R.id.button1);
		im=(ImageView) findViewById(R.id.im);
		but.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				  takePhoto();
			}
		});
     
		}
	/**
	* 拍照获取图片
	*/
	private void takePhoto() {
	//执行拍照前,应该先判断SD卡是否存在
	String SDState = Environment.getExternalStorageState();
	if(SDState.equals(Environment.MEDIA_MOUNTED))
	{
	
	   Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//"android.media.action.IMAGE_CAPTURE"
	/***
	* 需要说明一下,以下操作使用照相机拍照,拍照后的图片会存放在相册中的
	*这种方式有一个好处就是获取的图片是拍照后的原图
	* 如果不实用ContentValues存放照片路径的话,拍照后获取的图片为缩略图不清晰
	*/

	/*ContentValues values = new ContentValues(); 
	photoUri = this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); 
	intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);
	intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);*/
	//初始化
	
	String name = new DateFormat().format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA)) + ".jpg";
	File file = new File(photoPath); 
	    if(!file.exists()){ 
	    //检查图片存放的文件夹是否存在 
	     file.mkdir(); 
	    //不存在的话 创建文件夹 
	    }
	  picPath=photoPath+name;
	  File photo =new File(picPath);
	  photoUri = Uri.fromFile(photo); 
	  intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); // 这样就将文件的存储方式和uri指定到了Camera应用中 
	  startActivityForResult(intent, 1);
	  }else{
	    Toast.makeText(this,"内存卡不存在", Toast.LENGTH_LONG).show();
	  }
	}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		 if (requestCode==1) {  
             Bitmap bitmap = BitmapFactory.decodeFile(picPath, null);    
            im.setImageBitmap(bitmap);  
        }  
	}
	}

注意权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

相关联的问题的2个链接 1.点击打开链接 2.点击打开链接

listview异步加载图片优化篇1.点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值