카메라에서 사진을 찍어 ImageView에로드 할 수있는 응용 프로그램을 만들고 있습니다. 이제 내 문제는 카메라를 열고 그림을 찍은 다음 내 앱으로 돌아 왔을 때, onActivityResult가 호출 된 후 onCreate 메서드가 호출되기도합니다.카메라에서 결과를 반환 할 때도 호출되는 onCreate 메서드
이 문제는 내가라고 HTC 산불 모두에이 코드 fine.In HTC 산불 onActivityResult를 작동를 실행 삼성의 model.When에서 발생하고 onResume은 에 내가 원하는 달성하는 HTC 산불하지만 가능하다 called.So입니다 삼성 S. 여기
내 코드이며, 여기에
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Drawable drawable = null;
System.out.println("Faces Fond"+facesFound);
System.out.println("On Activity Result is called");
switch (requestCode) {
case Constants.PICK_IMAGE:
switch(resultCode)
{
case RESULT_CANCELED:
break;
case RESULT_OK:
dragLayer.removeAllViews();
isFaceDetected = false;
resetArray();
numberOfViews = 0;
if(data!=null){
uriOfImage = data.getData();
System.out.println("Uri is "+ uriOfImage);
if(bitmapForDragLayer != null)
bitmapForDragLayer.recycle();
try {
bitmapForDragLayer = BitmapFactory.decodeStream(getContentResolver().openInputStream(uriOfImage));
bitmapForDragLayer = Bitmap.createScaledBitmap(bitmapForDragLayer, widthOfBitmap, heightOfBitmap, true);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
drawable = new BitmapDrawable(bitmapForDragLayer);
dragLayer.setBackgroundDrawable(drawable);
isImageLoaded = false;
}
break;
}
break;
case Constants.TAKE_PICTURE_CODE:
switch(resultCode)
{
case RESULT_CANCELED:
break;
case RESULT_OK:
dragLayer.removeAllViews();
isFaceDetected = false;
resetArray();
numberOfViews = 0;
System.out.println("Value of data"+data);
if(data!=null){
bitmapForDragLayer = (Bitmap)data.getExtras().get("data");
bitmapForDragLayer = Bitmap.createScaledBitmap(bitmapForDragLayer, widthOfBitmap, heightOfBitmap, true);
drawable = new BitmapDrawable(bitmapForDragLayer);
dragLayer.setBackgroundDrawable(drawable);
isImageLoaded = false;
}
break;
}
break;
case Constants.FRAME_SELECT_CODE:
currentFrame = frameSelection.getFrameBitmap(resultCode);
currentSelectedBitmapVO.setSelectedBitmap(selectedFrame);
selectedFrame = currentFrame;
for(int i=0;i<array.size();i++)
{
System.out.println("value of i"+i);
if(array.get(i))
{
int height = currentBitmapVO[i].getSelectedBitmapHeight();
int width = currentBitmapVO[i].getSelectedBitmapWidth();
Bitmap b = Bitmap.createScaledBitmap(currentFrame, width, height, true);
selectedFrame = b;
imageView[i].setImageBitmap(selectedFrame);
imageView[i].invalidate();
}
}
break;
}
}
는 사진을 찍기 위해 카메라를 호출하는 코드입니다.
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, Constants.TAKE_PICTURE_CODE);
동일한 코드가 HTC에서는 정상적으로 실행되지만 삼성에서는 그렇지 않습니다.
활동 처리 구성이 어떻게 변경됩니까? – QuickNick
이 게시물에보십시오 : http://stackoverflow.com/questions/4901752/android-2-2-sdk-droid-x-camera-activity-doesnt-finish-properly/8679892#8679892 나는 대략 질문을 해결했다 추악한 해결 방법으로 onCreate 함수를 추가로 호출합니다. – Neonigma