#java #android
#java #Android
Вопрос:
Я вижу, что об этой ошибке сообщается через flurry, но понятия не имею, с чем это может быть связано или как найти, где может быть ошибка в моем коде Android.
class java.lang.IllegalArgumentException
Msg: android.graphics.Bitmap.checkPixelsAccess:823 (x width must be <= bitmap.width())
У кого-нибудь есть идеи, к какой ошибке это может относиться?
Ответ №1:
ваш код должен содержать ранее вызов метода:
yourBitmap.getPixels (pixels, offset, stride, x, y, width, height);
исключение возникает из-за того, что:
ваша начальная координата x величина, которую вы хотите получить из текущей строки, превышает ширину вашего исходного растрового изображения.
Вот картинка, которая может лучше объяснить ситуацию:
Надеюсь, это помогло. С уважением.
Ответ №2:
//encoding method
Bitmap encodeAsBitmap(String str) throws WriterException {
int black = 0xFF000000;
int white = 0xFFFFFFFF;
int width=400;
int height=400;
BitMatrix resu<
Bitmap bitmap=null;
try {
result = new MultiFormatWriter().encode(str,
BarcodeFormat.QR_CODE,height ,width , null);
int w = result.getWidth();
int h = result.getHeight();
int[] pixels = new int[w * h];
for (int y = 0; y < h; y ) {
int offset = y * w;
for (int x = 0; x < w; x ) {
pixels[offset x] = result.get(x, y) ? black : white;
}
}
bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
//Use the same value of the height and width respectively
bitmap.setPixels(pixels, 0, 400, 0, 0, 400, 400);
} catch (Exception iae) {
iae.printStackTrace();
return null;
}
return bitmap;
}