缩放背景像 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))
我的 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))