-3

I want to add on Click Event on Image View. By clicking On Image View It should open a Camera For Android.

    ImageView imageView = (ImageView) findViewById(R.id.ImageView1);
    imageView.setImageResource(R.drawable.camera);
  • 1
    Possible duplicate of [Button Click Listeners in Android](http://stackoverflow.com/questions/8977212/button-click-listeners-in-android) – Dileep Patel Jan 10 '17 at 05:37
  • And also you can use this link for camera http://stackoverflow.com/questions/13977245/android-open-camera-from-button – Dileep Patel Jan 10 '17 at 05:44

2 Answers2

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);
        }
    });

Handle the request:

@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;
       }
     }
   }

You might need to use the Permission:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
W4R10CK
  • 5,502
  • 2
  • 19
  • 30
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");
        }
Sadiq Md Asif
  • 882
  • 6
  • 18