Ошибка с 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());