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?