Intereting Posts
Андроидная студия «Использовать градирную обертку» выделена серым цветом Не удалось выполнить dex: java.nio.BufferOverflowException. Проверьте журнал Eclipse для отслеживания стека Что означает андроид getIntrinsicHeight и getIntrinsicWidth? Программирование Android ServerSocket с потоковыми файлами jCIFS Как я могу форматировать номер строки для запятой в поле редактирования android Формат POPUP для мягкой клавиатуры Получение недопустимой ошибки параметра android_key, после первого входа в систему в Facebook Android SDK Android SQLite выберите * из таблицы, где имя, например,% key%, с помощью подготовленных операторов Разработчик Android «Загрузите новый APK в Production 99% complete» и застрял Включить заднюю камеру с помощью HTML5 Создатель активности Как изменить размер эмулятора AVD (в Eclipse)? Перемещение папки конфигурации AVD по умолчанию (.android) Поверхностный вид + glsurfaceview + framelayout Использование recyclerview с базой данных

Ошибка с setPixels

Я пытаюсь редактировать изображения. Но я получаю ошибки с setPixels.

picw = pic.getWidth(); pich = pic.getHeight(); picsize = picw*pich; int[] pix = new int [picsize]; pic.getPixels(pix, 0, picw, 0, 0, picw, pich); pic.setPixels(pix,0,pic.getWidth(),0,0,pic.getWidth(),pic.getHeight()); 

Но я получаю незаконное государственное исключение с setPixels

 Caused by: java.lang.IllegalStateException at android.graphics.Bitmap.setPixels(Bitmap.java:878) at com.sandyapps.testapp.testapp.onCreate(testapp.java:66) 

Solutions Collecting From Web of "Ошибка с setPixels"

Я думаю, что ваш битмап не изменен ( см. Документацию setPixel () ).

Если это так, создайте измененную копию этого растрового изображения (в качестве примера, используя Bitmap.copy(Bitmap.Config config, boolean isMutable) ) и работайте над этим.

Скорее всего, ваш pic неизменен. По умолчанию любое растровое изображение, созданное из drawable, будет неизменным.

Если вам нужно изменить существующее растровое изображение, вы должны сделать следующее:

 // Create a bitmap of the same size Bitmap newBmp = Bitmap.createBitmap(pic.getWidth(), pic.getHeight(), Config.ARGB); // Create a canvas for new bitmap Canvas c = new Canvas(newBmp); // Draw your old bitmap on it. c.drawBitmap(pic, 0, 0, new Paint());