1

我想让我的按钮如下所示。您能告诉我,如何为以下内容制作可绘制的 xml 文件吗?

喜欢这张图片

在此处输入图像描述

4

3 回答 3

2

只需使用带有属性MaterialButton材料组件库中的标准。 就像是:shapeAppearanceOverlay

    <com.google.android.material.button.MaterialButton
        app:shapeAppearanceOverlay="@style/ButtomShapeArrow"
        ../>

和:

  <style name="ButtomShapeArrow">
    <item name="cornerFamily">cut</item>
    <item name="cornerSize">50%</item>
  </style>

在此处输入图像描述

使用Jetpack 组合

Button(
    onClick = { /* do something */},
    shape = CutCornerShape(50)
){
    Text ("SHAPE")
}

在此处输入图像描述

于 2020-01-07T09:47:34.280 回答
1

你可以通过在你的drawable中创建一个drawable XML文件来做到这一点

背景.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="27dp"
    android:height="24dp"
    android:viewportHeight="628.0"
    android:viewportWidth="726.0">
    <path
        android:fillColor="#00ffffff"
        android:pathData="m723,314c-60,103.9 -120,207.8 -180,311.8 -120,0 -240,0 -360,0C123,521.8 63,417.9 3,314 63,210.1 123,106.2 183,2.2c120,0 240,0 360,0C603,106.2 663,210.1 723,314Z"
        android:strokeColor="#ffffff"
        android:strokeWidth="20" />
</vector>

然后在您的布局文件中,您可以添加如下背景

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#652ef0"
    android:orientation="vertical"
    tools:context="com.MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@drawable/background"
        android:gravity="center"
        android:text="Hello World!" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/background"
        android:gravity="center"
        android:text="Hello World 2!" />
</LinearLayout>

这会给你这样的输出 活动主

于 2017-07-04T10:21:06.723 回答
0

如果只是形状,也许矢量可绘制就足够了,但要绘制形状、图标和文本,最好创建自己的 Button 类并在覆盖的 onDraw 中绘制东西。可以使用路径绘制形状。

于 2017-07-04T10:08:20.380 回答