Android Layer List Drawable Move 调整项目位置

Android Layer List Drawable Move Adjust Item Position

如何定位 <item><layer-list> Drawable?感谢您的帮助。

<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:drawable="@drawable/radio_uncheck" />    //24dp from vector assset

    <item
        android:drawable="@drawable/check_mark" />    //24dp from vector asset

</layer-list>

使用项目标签的 android:leftandroid:top 作为复选标记会将复选标记向上和向右移动,但它也会缩小复选标记,我不认为你正在寻找。

我可以想到其他两种方法来解决这个问题:第一种是只编辑可绘制的复选标记以移动它。您可以使用 InkScape 等编辑器执行此操作,还有其他编辑器。您可能需要稍微调整整体大小以适应移动的复选标记。我更喜欢这种方法。

第二种方法是编写自定义 LayerDrawable 覆盖 draw() 方法来抵消复选标记。如果这是您可能需要对其他可绘制对象执行的操作,我可能更喜欢这种方法。如果没有,我建议只做第一个建议。

如果您愿意放弃图层可绘制对象,您也可以使用 translateX 和 translateY 通过几个视图来完成您需要的操作。我相信还有其他方法。

最后选择修改SVG图片来满足自己的需求,过程如下:

  1. 转到 "https://materialdesignicons.com/" -> 查找图片 -> 下载 SVG 图片。

  2. 转到“https://editor.method.ac/”->“文件”->“打开 SVG...”-> 选择 SVG 文件->“打开”。

  3. 在右侧面板上调整 canvas 宽度和高度。

  4. 调整导入的SVG图片的位置。

  5. “文件”->“保存图像...”->重命名文件->“下载”。

  6. 将 SVG 图像作为矢量资产导入 Android Studio。