Android 如何删除矢量资源可绘制对象的内部填充
Android How to Remove the Inner Padding of a Vector Asset Drawable
我从 Vector Asset 中绘制的矢量:
<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>
当前输出:
如何移除此矢量绘图的内部填充?任何帮助将不胜感激。
好的,这是我想出的解决方案,不是完美的答案,但满足我的需要。
像这样修改 Vector Drawable:
<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)" 解释:
我从 Vector Asset 中绘制的矢量:
<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>
当前输出:
如何移除此矢量绘图的内部填充?任何帮助将不胜感激。
好的,这是我想出的解决方案,不是完美的答案,但满足我的需要。
像这样修改 Vector Drawable:
<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)" 解释: