я делаю это в моем onActivityResult ... я получаю рис из намерения захвата, уменьшаю его размер и добавляю его в список, который позже добавляется в пользовательский listView ... я надеюсь, что это поможет с вашей проблемой
if (resultCode == Activity.RESULT_OK) {
Bundle extras = intent.getExtras();
Bitmap bitmap = (Bitmap) extras.get("data");
int width = bitmap.getWidth();
Log.i("size width:", String.valueOf(width));
int height = bitmap.getHeight();
Log.i("size height:", String.valueOf(height));
float widthPercent = (float) 0.8;
float heightPercent = (float) 0.8;
float newWidth = bitmap.getWidth() * widthPercent;
float newHeight = bitmap.getHeight() * heightPercent;
while (newWidth > 250 || newHeight > 250) {
newWidth = newWidth * widthPercent;
Log.i("size width:", String.valueOf(newWidth));
newHeight = newHeight * heightPercent;
Log.i("size height:", String.valueOf(newHeight));
}
// calculate the scale - in this case = 0.4f
float scaleWidth = ((float) newWidth) / width;
Log.i("new size width:", String.valueOf(scaleWidth));
float scaleHeight = ((float) newHeight) / height;
Log.i("new size height:", String.valueOf(scaleHeight));
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,
width, height, matrix, true);
Log.i("new bitmap width:",
String.valueOf(resizedBitmap.getWidth()));
Log.i("new bitmap height:",
String.valueOf(resizedBitmap.getHeight()));
App.serviceCallImages.add(resizedBitmap);
Adapter.notifyDataSetChanged();
break;
}
вот код намерения моей камеры
public void OnCameraOpen(View v) {
if (App.serviceCallImages.size() < 2) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAPTURE_PICTURE_INTENT);
} else {
Toast.makeText(getApplicationContext(), getString(R.string.MaxPics),
Toast.LENGTH_SHORT).show();
}
}