80,351
社区成员
发帖
与我相关
我的任务
分享
package com.example.camera;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Locale;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.text.format.DateFormat;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity{
Button button1;
Button button2;
private String name;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 =(Button)findViewById(R.id.button1);
name=new DateFormat().format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA))+".jpg";
name="IMG_"+name;
button1.setOnClickListener(new OnClickListener(){//设置监听对象
@Override
public void onClick(View v){
//实例化一个intent,并指定action
Intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//调用系统相机
//指定一个图片路径对应的file对象
File vfile=new File("/sdcard/DCIM/Camera");
if(!vfile.exists())
{
vfile.mkdirs();//创建文件夹
}
File vFile=new File(vfile,name);
Uri uri=Uri.fromFile(vFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
startActivityForResult(intent,Activity.DEFAULT_KEYS_DIALER);//启动系统相机的activity
}
});
button2=(Button)findViewById(R.id.button2);
button2.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
Intent intent=new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==Activity.RESULT_OK)
{
String sdStatus=Environment.getExternalStorageState();
if(!sdStatus.equals(Environment.MEDIA_MOUNTED))
{
Log.i("TestFile","SD card is not avaiable/writable right now");
return;
}
Bundle bundle=data.getExtras();
Bitmap bitmap=(Bitmap)bundle.get("data");
FileOutputStream b=null;//FileOutputStream为文件写入
String fileName="/sdcard/DCIM/Camera"+name;
try{
b=new FileOutputStream(fileName);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, b);
}catch(FileNotFoundException e){
e.printStackTrace();
}finally{
try{
b.flush();
b.close();
}catch(IOException e){
e.printStackTrace();
}
}
((ImageView) findViewById(R.id.imageView)).setImageBitmap(bitmap);
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
String sdStatus = Environment.getExternalStorageState();
if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) {
Log.i("TestFile", "SD card is not avaiable/writable right now");
return;
}
String fileName = "/sdcard/DCIM/Camera/" + name;
((ImageView) findViewById(R.id.imageView1))
.setImageBitmap(BitmapFactory.decodeFile(fileName));
}
}