9-patch - 缩小时保持不可拉伸区域的 height/width 比率
9-patch - Conservation of the height/width ratio of the non-stretchable area when scaling down
我有以下9个补丁文件作为cardview的背景:
为了将图像缩放到背景,我在我的 ImageView 上使用缩放类型 "fitXY" :
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/background_player_right_elo"
android:scaleType="fitXY"/>
当卡片尺寸大于图像尺寸时效果很好。但是,在我的例子中,图像的高度低于图像的高度 (45dp),结果是失真的:
我可以缩小图像,但它会产生像素化图像。
我不能使用标准图像而不是 9-patch,因为卡的宽度取决于设备屏幕宽度。
在缩小 9 补丁图像时,是否可以保留不可拉伸区域的比例 height/width?
否则,还有其他方法可以得到想要的结果吗?
提前致谢!
根据限制条件,有几种可能的答案:
- 如果结果不太像素化,则减小 9 补丁图像的大小;
- 如果您不介意,请增加 CardView 的大小;
否则,你可以使用两个ImageView:
- 第一个具有 scaleType "fitXY" 的,将包含一个具有可伸缩背景的 9 补丁图像;
- 第二个具有 scaleType "centerInside",将仅包含徽标(不是 9 补丁)和透明背景。
示例:
<!-- ImageView for the 9-patch background -->
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/background"
android:scaleType="fitXY"/>
<!-- ImageView for the non 9-patch logo -->
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/logo"
android:scaleType="centerInside"/>
我有以下9个补丁文件作为cardview的背景:
为了将图像缩放到背景,我在我的 ImageView 上使用缩放类型 "fitXY" :
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/background_player_right_elo"
android:scaleType="fitXY"/>
当卡片尺寸大于图像尺寸时效果很好。但是,在我的例子中,图像的高度低于图像的高度 (45dp),结果是失真的:
我可以缩小图像,但它会产生像素化图像。 我不能使用标准图像而不是 9-patch,因为卡的宽度取决于设备屏幕宽度。
在缩小 9 补丁图像时,是否可以保留不可拉伸区域的比例 height/width?
否则,还有其他方法可以得到想要的结果吗?
提前致谢!
根据限制条件,有几种可能的答案:
- 如果结果不太像素化,则减小 9 补丁图像的大小;
- 如果您不介意,请增加 CardView 的大小;
否则,你可以使用两个ImageView:
- 第一个具有 scaleType "fitXY" 的,将包含一个具有可伸缩背景的 9 补丁图像;
- 第二个具有 scaleType "centerInside",将仅包含徽标(不是 9 补丁)和透明背景。
示例:
<!-- ImageView for the 9-patch background -->
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/background"
android:scaleType="fitXY"/>
<!-- ImageView for the non 9-patch logo -->
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/logo"
android:scaleType="centerInside"/>