Android Drawable中控制形状内图片位置及解决%单位报错问题
解决XML Drawable中图片定位到25%区域的问题
错误原因
Android Drawable XML的left/right等位置属性不支持直接使用百分比单位,因此你使用75%会触发unknown unit '%'错误。
解决方案
根据你的需求,有两种可行的实现方式:
方式1:适配API 24及以上版本
如果你的应用最低兼容版本是API 24(Android 7.0)及以上,可以直接利用百分比宽度结合重力属性定位:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 先添加你已有的三个子矩形Drawable --> <item android:width="25%" android:gravity="right|top"> <!-- 替换为你的目标图片 --> <bitmap android:src="@drawable/your_target_image" /> </item> </layer-list>
android:width="25%":将图片所在区域的宽度设为总宽度的25%android:gravity="right|top":把这个25%的区域定位到右上角(对应你需要的第三部分)
方式2:兼容低版本(API <24)
如果需要兼容更低版本的Android系统,可以使用ClipDrawable实现裁剪显示:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 先添加你已有的三个子矩形Drawable --> <item> <clipDrawable android:clipOrientation="horizontal" android:drawable="@drawable/your_target_image" android:gravity="right" android:level="7500" /> </item> </layer-list>
android:clipOrientation="horizontal":设置水平方向裁剪android:gravity="right":从右侧开始保留显示区域android:level="7500":level取值范围为0-10000,设置为7500时,左侧75%的区域会被裁剪,仅显示右侧25%的图片内容
内容的提问来源于stack exchange,提问作者Villoni Jean pierre
相关产品推荐
相关产品推荐

