Próbowałem przycinać i zmieniać rozmiar obrazu podczas robienia zdjęć w aparacie, ale nie rozumiem, co robię źle tutaj - nie można uzyskać nawet przyciętych danych obrazu nawet jeśli plik jest poprawnie zapisany w telefonie.Aparaty aparatu Android z przycięciem
...
public class Add extends Activity {
private String imageFilePath;
...
protected void onCreate(Bundle savedInstanceState) {
...
imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/tmp/" + String.valueOf(System.currentTimeMillis()) + ".jpg";
imageFile = new File(imageFilePath);
imageFileUri = Uri.fromFile(imageFile);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, imageFileUri);
intent.putExtra("crop", "true");
intent.putExtra("outputX", 600);
intent.putExtra("outputY", 600);
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, 0);
...
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case 0 : {
Bitmap bitmap = BitmapFactory.decodeFile(imageFilePath);
}
}
}
Jeśli używam intent.putExtra("crop", "true");
, imageFilePath
zwraca null, jeśli nie zwraca poprawny plik.
Dzięki za pomoc!
Dzięki Drnik, więc nie możesz użyć 'intent.putExtra (" crop "," true "); z intencją ACTION_IMAGE_CAPTURE? Najpierw musisz uchwycić intencją, a następnie użyć innej intencji do przycięcia? –
Co to jest cropadaptor? –
@BriceLechatellier nie jest stabilny, w niektórych urządzeniach z systemem Android aplikacja aparatu po prostu się zawiesza. FYI: http://stackoverflow.com/questions/13561026/taking-an-image-and-cropping-it –