缩放背景像 ImageView scaleType="fitCenter"

Scaling backround like ImageView scaleType="fitCenter"

我的 ImageView 在我的 file.png 和 scaleType = "fitCenter" 上保持长方形并在不同的 screens/rotations 上制作 smaller/bigger。 此 ImageView 位于具有相同背景文件的 LinearLayout 内。 问题是,在缩放背景后我无法得到相同的结果 - 源图片总是水平拉伸或变大。

这是我的代码:

<LinearLayout
        android:id="@+id/layout_button_quiz"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/scaling_background">
        <ImageView
            android:id="@+id/button_quiz"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/brain_off"
            android:scaleType="fitCenter"/>
</LinearLayout>

这是我试过的背景缩放解决方案,但不起作用:

<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/brain_off"
    android:scaleType="fitCenter"/>

总结一下: 我希望我的 LinearLayout 的背景与其中的 ImageView 缩放相同,即 scaleType=fitCenter。

<item android:drawable="@color/transparent"/>
<item>
    <bitmap
        android:gravity="center|fill"
        android:src="@drawable/ic_share" />
</item>

将其设置为布局的背景。但这将填充背景并且图像可能会拉伸。 以编程方式完美设置背景

int widthI = bitMapin.getWidth();
int heightI = bitMapin.getHeight();
int widthC = container.getWidth();
int heightC = container.getHeight();
int new_width = widthC;
int new_height = (int) Math.floor((double) heightI *( (double) new_width / (double)       widthI ));
Bitmap newbitMap = Bitmap.createScaledBitmap(bitMapin, new_width, new_height, true);
container.setBackground(new BitmapDrawable(getResources(), newbitMap))