Я использовал камеру для захвата фотографии и отправки ее другим действиям для дальнейшего использования. Я включил EXTRA_OUTPUT
часть в putExtra
метод камеры, так что я могу получить изображение полного размера, а не миниатюру. Проблема в том, что после захвата изображения я перенаправлен на MainActivity. Когда я увидел в File Manager, я обнаружил, что изображение было сохранено. Пожалуйста помоги.Вопрос о намерениях камеры в Android
CameraButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = timeStamp + ".jpg";
File storageDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES);
pictureImagePath = storageDir.getAbsolutePath() + "/" + imageFileName;
file = new File(pictureImagePath);
outputFileUri = Uri.fromFile(file);
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
camera.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(camera, REQUEST_IMAGE_CAPTURE);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK && null != data) {
try {
b = MediaStore.Images.Media.getBitmap(this.getContentResolver(), outputFileUri);
String filename123 = "myphoto.jpg";
FileOutputStream out = this.openFileOutput(filename123, Context.MODE_PRIVATE);
b.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.close();
b.recycle();
Intent in1 = new Intent(this, ongallery.class);
in1.putExtra("picture", filename123);
startActivity(in1);
}catch(Exception e)
{
Toast.makeText(this,"You got Error!",Toast.LENGTH_SHORT).show();
}
}
} catch (Exception e) {
Toast.makeText(this,"Something went wrong",Toast.LENGTH_SHORT).show();
}
}
//OnaGallery.java
public class ongallery extends Activity {
public ImageView imgView;
int xDim;
int yDim;
String filename;
public Bitmap finale = null ;
public Bitmap bmp = null;
public Bitmap photoEdit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ongallery);
imgView = (ImageView) findViewById(R.id.imgView);
xDim = imgView.getWidth();
filename = getIntent().getStringExtra("picture");
try {
FileInputStream is = this.openFileInput(filename);
bmp = BitmapFactory.decodeStream(is);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
Bitmap finalPhoto = decoder(filename,400,400);
imgView.setImageBitmap(finalPhoto);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
}
public Bitmap decoder(String filename, int reqWidth, int reqHeight) {
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
String filepath = getFileStreamPath(filename).getPath();
BitmapFactory.decodeFile(filepath, options);
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
options.inJustDecodeBounds = false;
finale = BitmapFactory.decodeFile(filepath, options);
return finale;
}
int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
int inSampleSize = 1;
if (options.outHeight > reqHeight || options.outWidth > reqWidth) {
final int halfHeight = options.outHeight/2;
final int halfWidth = options.outWidth/2;
while ((halfHeight/inSampleSize) > reqHeight
&& (halfWidth/inSampleSize) > reqWidth) {
inSampleSize *= 2;
}
}
return inSampleSize;
}
}
что ongallary.class? – Nishith
Его класс Activity, который содержит ImageView, к которому я буду добавлять изображение. –
вы пробовали отлаживать свой код, чтобы узнать, где он собирается после того, как вы создадите намерение перейти к своей ongallary активности? – Nishith