You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:27:23