ViewPagers와 카메라 앱에 대한 풍부한 문서 연구를했는데, 사실상 모든 것이 잘 생겼다. 진저 브레드의 주요 문제점을 제외하고는 S.O.에 관한 어떤 질문도 발견하지 못했다. 그래서이 질문을 해보겠습니다 ...진저 브레드에서 안드로이드 ViewPager와 카메라 미리보기 문제
내 응용 프로그램에는 두 조각을 보여주는 ViewPager (지원 라이브러리 v4)가 있습니다 : 하나는 메인 프래그먼트, 하나는 액티비티가 시작될 때 보여주는 것, 처음에는 비어 있고 숨겨진 이미지 뷰를 포함하여 특정 정보가 사용자에게 표시됩니다.
다음 조각으로 swyping하면 사용자는 카메라 미리보기를 볼 수 있습니다. 카메라 미리보기는 활동이 만들어 질 때 만들어지며 (swype까지 표시되지 않더라도) 사진을 찍을 때까지 표시됩니다.
사진을 찍을 때보기가 프로그래밍 방식으로 주 프래그먼트로 되돌려지고 imageview에 새로운 사진이 표시되고 숨김이 해제되어 사용자는 기존의 다른 정보와 혼합 된 이미지를 볼 수 있습니다.
사용자가 사진을 좋아하지 않는다면, 그는 카메라 조각으로 다시 swype하여 다른 사진을 찍을 수 있습니다. 결과에 만족할 때까지 계속해서 사진을 찍을 수 있습니다.
따라서 주 프래그먼트로 되돌리기 전에 mCamera.restartPreview()를 호출하고 사용자가 다시 swype 할 때 카메라가 준비되었는지 확인합니다.
안드로이드 4.x에서는 모든 것이 원활하게 작동하지만 2.3.3 (API 레벨 10)에서 테스트 할 때 카메라 미리보기는 메인 프래그먼트가 콜백 될 때 전경을 유지하고 뷰를 숨 깁니다. 카메라 화면에 버튼이 표시되는 화면 부분에서는 나머지보기가 보일 수도 스크롤 할 수도 있지만 나머지는 카메라 미리보기로 겹쳐집니다. 이 경우
public void takeBack(){
mViewPager.setCurrentItem(0, true);
String mainFragTag = "android:switcher:"+R.id.newpinpager+":0";
Fragment fragMain = this.getSupportFragmentManager().findFragmentByTag(mainFragTag);
try {
((NewPinMainFragment)fragMain).showPhoto(newPin.getMedia());
} catch (NullPointerException e){
}
}
아무도 단서가 있습니까
CameraFragment onPictureTaken()
private PictureCallback mPicture = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
if (pictureFile == null){
Log.d(TAG, "Error creating media file, check storage permissions: ");
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
Log.e(TAG, "FILE " +pictureFile.getAbsoluteFile().toString());
Bitmap bitmap = rotated(data);
bitmap.compress(CompressFormat.JPEG, PICTURE_QUALITY, fos);
bitmap.recycle(); //devo davvero chiamarla esplicitamente ??
mediaFile = pictureFile;
mPreview.restartPreview();
// go back to newpin activity to show it
((NewPinActivity) myActivity).newPin.setMedia(mediaFile.getAbsoluteFile().toString());
((NewPinActivity) myActivity).takeBack();
} catch (FileNotFoundException e) {
Log.d(TAG, "File not found: " + e.getMessage());
}
}
};
과 mainfragment의 수거() 메소드 : 여기
는 관련 기능의 코드 ViewPager와 GingerBread 또는 CameraPreview와 Gingerbread와 관련된 문제입니까?