Android如何去除矢量图标Drawable的内部填充?

6

我的矢量可绘制资源来自于矢量资产:

<vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:tint="@android:color/holo_purple"
    android:viewportWidth="24"
    android:viewportHeight="24">

    <path
        android:fillColor="@android:color/white"
        android:pathData="M7,14l5,-5 5,5z" />

</vector>

我的布局:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/ic_baseline_arrow_drop_up_24" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/background"
        android:text="Hi, my name is Sam"
        android:textColor="@android:color/white"
        android:textSize="30sp" />

</LinearLayout>

当前输出:

enter image description here

如何去除这个矢量图形的内边距?任何帮助都将不胜感激。


你可以在这里检查你的问题的答案 https://dev59.com/dlwX5IYBdhLWcg3wlgPl。 - Sam
@Saniya 我已经尝试了所有的方法,但都没有起作用。 - Sam Chen
2个回答

4

好的,以下是我想出来的解决方案,虽然不是完美的答案,但满足我的需求。

将可缩放矢量图形修改为如下所示:

<vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:tint="@android:color/holo_purple"
    android:viewportWidth="24"
    android:viewportHeight="24">

    <group                       //key point
        android:pivotX="12"      //(12, 12) is the center accordig to the viewport, see link below
        android:pivotY="12"
        android:scaleX="2.0"     //twice bigger, adjust as needed
        android:scaleY="2.0"
        android:translateY="8">  //move downward, asjust as needed

        <path
            android:fillColor="@android:color/white"
            android:pathData="M7,14l5,-5 5,5z" />

    </group>

</vector>

结果:

输入图像描述

输入图像描述


这种解决方案的好处在于,无论您如何更改ImageView的大小,目标形状都保持其位置(在我的情况下为底部),因此无需使用RelativeLayout,只需使用LinearLayout即可。

"pivot(12, 12)" 的解释:https://dev59.com/SVkS5IYBdhLWcg3w456B#51659233


0
你可以查看带有 (pivotX, pivotY, scaleX, scaleY) 的 group 标签,并修改资产代码。
请查看示例[此处]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接