Android 开发随手笔记之使用摄像头拍照

2019-12-10 19:51:47于海丽

完整代码为:

 

 
  1. import android.app.Activity;  import android.content.Intent; 
  2. import android.net.Uri;  import android.os.Bundle; 
  3. import android.os.Environment;  import android.provider.MediaStore; 
  4. import android.util.Log;  import android.view.View; 
  5. import android.widget.Button;  import android.widget.ImageView; 
  6. import java.io.File;  public class MainActivity extends Activity { 
  7. private File fileName = null;  private Button button; 
  8. private ImageView imageView;  @Override 
  9. protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState); 
  10. setContentView(R.layout.activity_main);  button = (Button)findViewById(R.id.button); 
  11. imageView = (ImageView)findViewById(R.id.imageView);  button.setOnClickListener(new View.OnClickListener() { 
  12. @Override  public void onClick(View v) { 
  13. File filePath = new File(Environment.getExternalStorageDirectory(), "myCamera");  if(!filePath.exists()){ 
  14. filePath.mkdirs();  } 
  15. fileName = new File(filePath, System.currentTimeMillis() + ".jpg");  try{ 
  16. if(!fileName.exists()){  fileName.createNewFile(); 
  17. }  }catch (Exception e){ 
  18. e.printStackTrace();  } 
  19. // intent用来启动系统自带的Camera  Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
  20. // 将系统Camera的拍摄结果写入到文件  intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(fileName)); 
  21. // 启动intent对应的Activity,返回默认消息  startActivityForResult(intent, Activity.DEFAULT_KEYS_DIALER); 
  22. }  }); 
  23. }  @Override 
  24. protected void onActivityResult(int requestCode, int resultCode, Intent data){  if(requestCode == Activity.DEFAULT_KEYS_DIALER){ 
  25. // MainActivity接收Camera返回的消息,然后将已经写入的图片显示在ImageView内  imageView.setImageURI(Uri.fromFile(fileName));