Ich versuche einfache Kamera-App für ein Projekt zu bauen, aber ich kann keine Kamera-Kamera-Bibliotheken wie Camera Kit verwenden. Und ich benutze Camera2 apis nicht, weil ich Rückwärtskompatibilität benötige.Das Foto, das ich festhalte, ist niedrige Entschließung, wie kann ich es volles Resolution machen?
Ich habe benutzerdefinierte CameraPreview (erweitert SurfaceView implementiert SurfaceHolder.Callback) Klasse App zeigt Echtzeitvorschau. Aber wenn ich das Bild in Meine Hauptaktivität speichere, speichert es in 320x240 Auflösung.
Ich konnte nicht verstehen, warum es in 240p speichert und wie kann ich diese Daten in voller Auflösung speichern?
Dies ist die Aktivität, wo es das Bild speichert;
public class FullscreenActivity extends Activity implements Camera.PictureCallback {
public final static String DEBUG_TAG = "MakePhotoActivity";
public Camera camera;
private int cameraId = 0;
private Uri filerui;
boolean visibility =false;
private static final String IMAGE_DIRECTORY_NAME = "hellocamera";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fullscreen);
//Check Permission
FullscreenActivityPermissionsDispatcher.NeedCameraPermissinWithPermissionCheck(this);
// do we have a camera?
cameraId = findCamera();
if (getBoolean()) {
visibility=true;
camera=Camera.open(cameraId);
initCameraPreview();
}
}
//iniitaiate preview
public void initCameraPreview(){
CameraPreview cameraPreview= (CameraPreview) findViewById(R.id.camerePreview);
if (visibility) {
cameraPreview.setVisibility(View.VISIBLE);
visibility=false;
}
cameraPreview.init(camera);
}
//This is the button ı capture photos
public void onClick(View view) {
camera.takePicture(null, null, this);
}
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "DCIM");
imagesFolder.getAbsolutePath();
String fileName = Helper.save();
File output = new File(imagesFolder, fileName);
Uri uriSavedImage = Uri.fromFile(output);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriSavedImage);
imageFileOS.write(data);
imageFileOS.flush();
imageFileOS.close();
} catch (FileNotFoundException e) {
// Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// Auto-generated catch block
e.printStackTrace();
}
}