照相一

来源:互联网 发布:58群发软件 编辑:程序博客网 时间:2024/05/02 02:55
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/";@Overrideprotected 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() {@Overridepublic 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();  }}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.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.点击打开链接

0 0