思捻如枫 2011-08-19
package com.cons.dcg.collect;
importjava.io.File;
importjava.text.SimpleDateFormat;
importjava.util.ArrayList;
importjava.util.Date;
importjava.util.HashMap;
importjava.util.List;
importandroid.app.Activity;
importandroid.app.Notification;
importandroid.app.NotificationManager;
importandroid.app.PendingIntent;
importandroid.app.ProgressDialog;
importandroid.content.Intent;
importandroid.database.Cursor;
importandroid.net.Uri;
importandroid.os.AsyncTask;
importandroid.os.Bundle;
importandroid.os.Environment;
importandroid.provider.MediaStore;
importandroid.view.KeyEvent;
importandroid.view.Menu;
importandroid.view.MenuInflater;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.AdapterView;
importandroid.widget.ArrayAdapter;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Spinner;
importandroid.widget.Toast;
publicclassProblemReportextendsActivityimplementsOnClickListener{
privatestaticfinalintRESULT_CAPTURE_IMAGE=1;//照相的requestCode
privatestaticfinalintREQUEST_CODE_TAKE_VIDEO=2;//摄像的照相的requestCode
privatestaticfinalintRESULT_CAPTURE_RECORDER_SOUND=3;//录音的requestCode
privateStringstrImgPath="";//照片文件绝对路径
privateStringstrVideoPath="";//视频文件的绝对路径
privateStringstrRecorderPath="";//录音文件的绝对路径
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
this.setContentView(R.layout.problem_report);
}
@Override
protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
super.onActivityResult(requestCode,resultCode,data);
switch(requestCode){
caseRESULT_CAPTURE_IMAGE://拍照
if(resultCode==RESULT_OK){
Toast.makeText(this,strImgPath,Toast.LENGTH_SHORT).show();
}
break;
caseREQUEST_CODE_TAKE_VIDEO://拍摄视频
if(resultCode==RESULT_OK){
UriuriVideo=data.getData();
Cursorcursor=this.getContentResolver().query(uriVideo,null,null,null,null);
if(cursor.moveToNext()){
/*_data:文件的绝对路径,_display_name:文件名*/
strVideoPath=cursor.getString(cursor.getColumnIndex("_data"));
Toast.makeText(this,strVideoPath,Toast.LENGTH_SHORT).show();
}
}
break;
caseRESULT_CAPTURE_RECORDER_SOUND://录音
if(resultCode==RESULT_OK){
UriuriRecorder=data.getData();
Cursorcursor=this.getContentResolver().query(uriRecorder,null,null,null,null);
if(cursor.moveToNext()){
/*_data:文件的绝对路径,_display_name:文件名*/
strRecorderPath=cursor.getString(cursor.getColumnIndex("_data"));
Toast.makeText(this,strRecorderPath,Toast.LENGTH_SHORT).show();
}
}
break;
}
}
/**
*照相功能
*/
privatevoidcameraMethod(){
IntentimageCaptureIntent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);
strImgPath=Environment.getExternalStorageDirectory().toString()+"/CONSDCGMPIC/";//存放照片的文件夹
StringfileName=newSimpleDateFormat("yyyyMMddHHmmss").format(newDate())+".jpg";//照片命名
Fileout=newFile(strImgPath);
if(!out.exists()){
out.mkdirs();
}
out=newFile(strImgPath,fileName);
strImgPath=strImgPath+fileName;//该照片的绝对路径
Uriuri=Uri.fromFile(out);
imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);
startActivityForResult(imageCaptureIntent,RESULT_CAPTURE_IMAGE);
}
/**
*拍摄视频
*/
privatevoidvideoMethod(){
Intentintent=newIntent(MediaStore.ACTION_VIDEO_CAPTURE);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,0);
startActivityForResult(intent,REQUEST_CODE_TAKE_VIDEO);
}
/**
*录音功能
*/
privatevoidsoundRecorderMethod(){
Intentintent=newIntent(Intent.ACTION_GET_CONTENT);
intent.setType("audio/amr");
startActivityForResult(intent,RESULT_CAPTURE_RECORDER_SOUND);
}
/**
*提示信息
*@paramtext
*@paramduration
*/
privatevoidshowToast(Stringtext,intduration){
Toast.makeText(ProblemReport.this,text,duration).show();
}
}注:博客涉及的源码请在千寻资源库:www.qxzyk.com 下载获取,谢谢支持。
Feature: 点击选择拍照或者打开相册,选取图片进行裁剪最后设置为圆形头像。Problem: 拍好照片,点击裁剪,弹Toast“无法加载此图片”。Solution: 在裁剪的class里加两行代码