2016-09-19 2 views
0

카메라를 호출하는 버튼이 4 개있는 프래그먼트가 있습니다. 그리고 그 단추에 이미지를 넣기 위해 클릭 한 단추를 알아야합니다 ...Android - OnActivityResult 버튼 클릭

어떤 사람이 나를 도와 줄 수 있습니까?

여기에 내가 마법은 없다 ...

img_first_veiculo.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (permissionVerification.checkPermissionForCamera()) { 
       if (permissionVerification.checkPermissionForExternalStorage()) { 
        openDeviceCamera(); 
       } else { 
        permissionVerification.requestPermissionForExternalStorage(); 
       } 
      } else { 
       permissionVerification.requestPermissionForCamera(); 
      } 
     } 
    }); 

onActivityResult를

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

    if (resultCode != Activity.RESULT_OK) { 
     return; 
    } 

    switch (requestCode) { 

     case CROP_FROM_CAMERA: { 

      //TODO Set image here 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      img_first_veiculo.setImageBitmap(photo); 

      break; 
     } 

     case PermissionVerification.CAMERA_PERMISSION_REQUEST_CODE: { 

      Intent intent = new Intent("com.android.camera.action.CROP"); 

      intent.setDataAndType(mImageCaptureUri, "image/*"); 
      intent.putExtra("crop", "true"); 
      intent.putExtra("outputX", 640); 
      intent.putExtra("outputY", 360); 
      intent.putExtra("aspectX", 16); 
      intent.putExtra("aspectY", 9); 
      intent.putExtra("scale", true); 
      intent.putExtra("return-data", true); 
      startActivityForResult(intent, CROP_FROM_CAMERA); 

      break; 

     } 
    } 
} 

답변

1

는 온 클릭 여부는 1,2,3 또는 4를 기억하고 당신이 그것을 설정할 수 있습니다 onacitivy의 원인이 당신이, 멤버 varable이 활동 클래스에 mButtonclicked 유지할 필요가 제안했다. 초보자에게 이것은 좋을 지 모르지만 당신의 활력이 파괴 될 가능성이 있습니다 onSavedinstance와 onRestoreinstance에 대해 읽으십시오.

+0

저는 구현을했고 매력처럼 작동했습니다 ... 저는 변수를 만들어 스위치 케이스에 넣었습니다 ... 고맙습니다 –

0

를 이미지 버튼 클릭, 체크 권한을 호출하고 모든 확인을 경우, 장치의 카메라를 엽니 다. "on click"이벤트 메서드 호출을받을 때 어떤 버튼이 눌려 졌는지 알 수 있습니다. Activity 하위 클래스의 인스턴스 필드와 같이 자신을 추적해야합니다.

카메라가 열려있는 동안 활동이 파괴되면 데이터가 손실되지 않도록 인스턴스 상태에서 누른 버튼을 저장하는 것을 잊지 마십시오.

0

onActivityResult에 데이터를 저장하고 UR을 onResume 메소드에서 업데이트하십시오.

또는 제프리으로

activity.runOnUiThread(new Runnable() { 
public void run() { 
     Bitmap photo = (Bitmap) data.getExtras().get("data"); 
img_first_veiculo.setImageBitmap(photo); 
} 
}); 
관련 문제