Я просто хочу открыть собственное приложение камеры из своего приложения, чтобы сделать снимок и установить его в качестве фонового изображения моего экрана, а затем повернуть его при нажатии кнопки. Фотография поворачивается n раз, если она сделана 3-мегапиксельной камерой. Если я устанавливаю разрешение камеры на 5MP или более, приложение принудительно закрывается при пятом нажатии кнопки (фото поворачивается 4 раза).
Bitmap rotatedBitmap = null;
int curAngle = 0;
private Bitmap rotateImageBitmap(Bitmap capturedPhotoBitmap) {
if(rotatedBitmap != null )
{
rotatedBitmap = null;
}
Matrix matrix = new Matrix();
curAngle = (curAngle + 90) % 360;
matrix.postRotate(curAngle);
rotatedBitmap = Bitmap.createBitmap(capturedPhotoBitmap, 0, 0, capturedPhotoBitmap.getWidth(), capturedPhotoBitmap.getHeight(), matrix, true);
return rotatedBitmap;
}
Это из Руководства разработчика....
1. Мобильные устройства обычно имеют ограниченные системные ресурсы. Устройства Android могут иметь всего 16 МБ памяти, доступной для одного приложения.
2. Растровые изображения занимают много памяти, особенно для насыщенных изображений, таких как фотографии. Например, камера Galaxy Nexus делает фотографии размером до 2592x1936 пикселей (5 мегапикселей). Если используется конфигурация растрового изображения ARGB_8888 (по умолчанию, начиная с Android 2.3), то загрузка этого изображения в память занимает около 19 МБ памяти (2592 * 1936 * 4 байта), что немедленно исчерпает лимит для каждого приложения на некоторых устройствах.
Большинство современных телефонов оснащены камерами с разрешением 8 мегапикселей и выше. поэтому изображения будут большими. Как я могу повернуть свою фотографию «n» количество раз, не беспокоясь о разрешении камеры. Мне нужно его сжать? Каков наилучший способ? Пожалуйста помогите.