Java Android - Arbeiten mit Bildskalierung / Beschneiden programmgesteuert

Nun, all das quält mich wochenlang. Ich habe ein Bild mit einer Höhe von 227 Pixel auf 170 Pixel skaliert, auch wenn ich möchte, dass es immer wrap_content ist, wenn ich es tue.

OK. Hier nehme ich mein Bild, das 1950 Pixel lang ist (ich habe hier einen Teil davon eingefügt, damit Sie verstehen, wie es aussehen sollte).

Zuerst möchte ich es auf 227 Pixel hoch zurückskalieren, weil es so entworfen wurde und wie es sein sollte

Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),R.drawable.ver_bottom_panel_tiled_long);
            int width = bitmapOrg.getWidth();
        int height = bitmapOrg.getHeight();
        int newWidth = 200; //this should be parent's whdth later
        int newHeight = 227;

        // calculate the scale
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;

        // create a matrix for the manipulation
        Matrix matrix = new Matrix();
        // resize the bit map
        matrix.postScale(scaleWidth, scaleHeight);

        // recreate the new Bitmap
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, 
                          width, height, matrix, true); 


        BitmapDrawable dmpDrwbl=new BitmapDrawable(resizedBitmap);

    verbottompanelprayer.setBackgroundDrawable(dmpDrwbl);

Also ... es ist überhaupt kein zugeschnittenes Bild - nein, es sind 1950 Pixel, die zu 200 Pixel gepresst wurden.

Aber ich möchte nur etwas anderes als diese 200 Pixel oder die Breite, die ich einstellen möchte, ausschneiden und nicht das ganze lange Bild in den 200 Pixel-Bereich drücken.

Auch BitmapDrawable (Bitmap-Bitmap); und imageView.setBackgroundDrawable (drawable); sind veraltet - wie kann ich das ändern?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage