createBitmap - java.lang.IllegalArgumentException: x muss bitmap.width () sein

8

Ich erhalte einen Fehler beim Erstellen eines Screenshots und erstelle ein Bitmap mit Bildausschnitt

unten ist mein Code

%Vor%

Mein Logcat ist

%Vor%

Hier können Sie sehen, dass x & lt; bitmap.getWidth mean 60 & lt; 480

obwohl ich einen Fehler bekomme

    
Siddhpura Amit 01.11.2012, 05:34
quelle

3 Antworten

18

Nein, nicht x must be < bitmap.width() . Es heißt x + width must be <= bitmap.width() .

Sie erstellen ein Bitmap wie folgt:

%Vor%

Grundsätzlich zeichnen Sie von x = 60, y = 0 bis x = 480 + 60, y = 260 auf einem Bitmap , was nur 480x320 ist. Offensichtlich ist dies nicht möglich, da Ihre x -Koordinate von Bitmap abweicht.

Es ist schwer, Ihnen zu sagen, wie Sie das beheben können, ohne Ihren genauen Anwendungsfall zu kennen. Grundsätzlich muss Ihr source Bild in { x1: x, x2: x + width, y1: y, y2: y + height } passen.

Wenn Sie erst ab dem 60. Pixel zeichnen möchten, müssen Sie folgendes tun:

%Vor%     
Eric 01.11.2012, 05:40
quelle
0
%Vor%

Wie in Listen beginnt es bei 0, also muss die Breite Bitmapbreite - 1 sein.

    
Josip 09.09.2013 09:29
quelle
0

Auch Ihre y + Höhe sollte & lt; = sourceBitmap.height ()

sein     
Rahul 28.04.2014 10:46
quelle

Tags und Links