Android bmp.getWidth() gibt 0 zurück?

Der

Mitglied
Hallo,
ich bekomme beim laden und anpassen eines Bildes eine Fehlermeldung:
07-02 07:27:37.850: E/AndroidRuntime(32682): FATAL EXCEPTION: Thread-14330
07-02 07:27:37.850: E/AndroidRuntime(32682): java.lang.IllegalArgumentException: width and height must be > 0
07-02 07:27:37.850: E/AndroidRuntime(32682): at android.graphics.Bitmap.createBitmap(Bitmap.java:603)
07-02 07:27:37.850: E/AndroidRuntime(32682): at android.graphics.Bitmap.createBitmap(Bitmap.java:551)
07-02 07:27:37.850: E/AndroidRuntime(32682): at com.example.test.Main.passeBildAn(Main.java:186)
07-02 07:27:37.850: E/AndroidRuntime(32682): at com.example.test.Main.teste(Main.java:113)

zu dem Code komme ich wenn ich (im LogCat) auf:
"07-02 07:27:37.850: E/AndroidRuntime(32682): at com.example.test.Main.teste(Main.java:113)" Klicke:
Java:
		Bitmap trBild = passeBildAn(BitmapFactory.decodeResource(getResources(),
                R.drawable.bild, options), weite, hoehe);

Das ist meine Methode:
Java:
	public Bitmap passeBildAn(Bitmap bmp, int weite, int hoehe) {
        // neue Weite handy-groeßen-unabhaengig also weite / 3
        int newWidth = weite;
        // neue Hoehe um gleichen Faktor wie weite verkleinern/vergroeßern
        int newHeight = hoehe;

        // Werte fuer die Skalierung
        float scaleWidth = ((float) newWidth) / bmp.getWidth();

        // Man sieht der aufwand mit der neuen Hoehe war unnoetig, da scaleWidth
        // gleich scaleHeight
        float scaleHeight = ((float) newHeight) / bmp.getHeight();

        // Eine Matrix fuer die Manipulation des Bildes
        Matrix matrix = new Matrix();

        // bitmap skalieren
        matrix.postScale(scaleWidth, scaleHeight);

        // bitmap neu erstellen
        Bitmap resizedBitmap = Bitmap.createBitmap(bmp, 0, 0, (bmp.getWidth()), (bmp.getHeight()),
                matrix, true);
        return resizedBitmap;
	}

Der Fehler taucht in der Zeile auf:
Java:
        Bitmap resizedBitmap = Bitmap.createBitmap(bmp, 0, 0, (bmp.getWidth()), (bmp.getHeight()),
                matrix, true);

Auf diese Zeile bring mich diese hier aus dem LogCat:
"07-02 07:27:37.850: E/AndroidRuntime(32682): at com.example.test.Main.passeBildAn(Main.java:186)"

Das bild ist (bisher) nur ein Rechteck und im Anhang zu finden, es ist im drawable-hdpi Ordner abgelegt und hat 25*100 Pixel.
 

Anhänge

  • bild.png
    bild.png
    237 Bytes · Aufrufe: 35

dzim

Top Contributor
Wahrscheinlich ist es zu dem Zeitpunkt noch nicht gerendert worden.

Verpacke den Code mal in folgenden Listener:

Java:
<yourView>.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
	@Override
	public void onGlobalLayout() {
		// do something
	}
}

Dein Problem klingt nach einem, was ich auch mal hatte und das ich so gelöst habe. Im Listener wirst du informiert, wenn der View (<yourview>) auf dem Bildschirm dargestellt wurde.
 

Der

Mitglied
Danke für die schnelle Antwort (mal wieder :D)!

Hat alles super geklappt, kein Fehler mehr!!

Langsam könnte man meinen du wärst der einzige Aktive user hier ;D
 

dzim

Top Contributor
Möglicherweise... :) Es gibt schon ein paar, aber viele holen sich ihre Infos auf StackOverflow (ich auch oft), aber wenn ich von etwas Ahnung hab - oder es glaube :-D - dann teile ich auch gern mein Wissen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Volley String Response gibt falchen if aus Android & Cross-Platform Mobile Apps 35
J OnRatingBarChangeListener gibt keine Reaktion Android & Cross-Platform Mobile Apps 3
G Broadcast gibt keinen Laut Android & Cross-Platform Mobile Apps 2
A myView.getMeasuredWidth() gibt nichts zurück Android & Cross-Platform Mobile Apps 2
H AVD gibt kein Textfeld aus. Android & Cross-Platform Mobile Apps 5
A Android SimpleDateFormat gibt für Date unter android anderes Datum zurück als in Std. Java Android & Cross-Platform Mobile Apps 2
N Gibt es eine opensource Speech-to-Text engine? Android & Cross-Platform Mobile Apps 3
X Welche Einschränkungen gibt es bei der Handyprogrammierung Android & Cross-Platform Mobile Apps 4
H Gibt es eine Alternative zur Location API? Android & Cross-Platform Mobile Apps 4
S Welche System Properties gibt es? Android & Cross-Platform Mobile Apps 4
L 2x auf Zurück-Taste zum Schließen Android & Cross-Platform Mobile Apps 3
D Java ME Bild vom Web-Service aus zurück geben Android & Cross-Platform Mobile Apps 8
M Error beim drücken der Zurück-Taste am Handy Android & Cross-Platform Mobile Apps 2
O zurück Schaltfläche in voriges Layout Android & Cross-Platform Mobile Apps 5
D Java ME Mehrere Random´s geben immer die gleiche Zahl zurück Android & Cross-Platform Mobile Apps 7

Ähnliche Java Themen

Neue Themen


Oben