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"/>
listview异步加载图片优化篇1.点击打开链接