2017-01-10 95 views
-3

我想添加在图像视图上单击事件。通过点击图像视图它应该打开一个Android相机。Imageview打开相机

ImageView imageView = (ImageView) findViewById(R.id.ImageView1); 
    imageView.setImageResource(R.drawable.camera); 
+1

[在Android的按钮点击监听器(可能的重复HTTP ://stackoverflow.com/questions/8977212/button-click-listeners-in-android) –

+0

而且你可以使用这个链接相机http://stackoverflow.com/questions/13977245/android-open-camera-from-button –

回答

0
imageView = (ImageView) findViewById(R.id.ImageView1); 
    imageView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent imageLoader = (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) 
        ? new Intent(MediaStore.ACTION_IMAGE_CAPTURE_SECURE) 
        : new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(imageLoader, 1); 
     } 
    }); 

处理请求:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode == RESULT_OK){ 
     switch (requestCode) { 
      case 1: 
       your_image_container_to_set_image.setImageBitmap((Bitmap) data.getExtras().get("data")); //use this if you trying to set image on Imageview 

       break; 
     } 
    } 
    } 

您可能需要使用Permission

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
0
File file; 

imageView = (ImageView) findViewById(R.id.ImageView1); 
    imageView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      takePicture(v); 
     } 
    }); 
public void takePicture(View view) { 
       Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       file = Uri.fromFile(getOutputMediaFile()); 
       intent.putExtra(MediaStore.EXTRA_OUTPUT, file); 

       startActivityForResult(intent, 100); 
      } 

      @Override 
      protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
       if (requestCode == 100) { 
        if (resultCode == RESULT_OK) { 
         imageView.setImageURI(file); 
        } 
       } 
      } 


     private static File getOutputMediaFile(){ 
      File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES), "CameraDemo"); 

      if (!mediaStorageDir.exists()){ 
       if (!mediaStorageDir.mkdirs()){ 
        return null; 
       } 
      } 

      String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
      return new File(mediaStorageDir.getPath() + File.separator + 
         "IMG_"+ timeStamp + ".jpg"); 
     }