Ich habe ein ImageView, das ein Bitmap zeigt. Wenn ich mein Bitmap dem ImageView setze, ist es nicht zentriert. Ich habe auch versucht, den scaleType auf center, centerCrop, centerInside zu setzen.
Das ist mein ImageView im Layout:
android:id="@+id/xyz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginTop="3dp"
android:layout_weight="1.03"
android:background="#FFFFFFFF"
android:adjustViewBounds="true"
android:scaleType="fitXY"
EDIT: Das ist der Code, der das Bitmap skalieren:
private void scaleImage() {
Bitmap bitmap = getHostPage().getBackgroundDrawing();
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int bounding = dpToPx(250);
float xScale = ((float) bounding) / width;
float yScale = ((float) bounding) / height;
Matrix matrix = new Matrix();
matrix.postScale(xScale, yScale);
Bitmap scaledBitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true);
width = scaledBitmap.getWidth();
height = scaledBitmap.getHeight();
BitmapDrawable result = new BitmapDrawable(scaledBitmap);
getHostPage().setBackgroundDrawing(result.getBitmap());
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) drawView.getLayoutParams();
params.width = width;
params.height = height;
drawView.setLayoutParams(params);
}
private int dpToPx(int dp) {
float density = hostPage.getHostActivity().getApplicationContext().getResources().getDisplayMetrics().density;
return Math.round((float)dp * density);
}