用xml两边做一个箭头形状

Shi*_*mar 3 xml android android-button material-design material-components-android

我想做一个这样的按钮形状

在此处输入图片说明

有没有办法做到这一点XML

其实我正在寻找这样的

在此处输入图片说明

Gab*_*tti 5

它不完全是您要寻找的,因为它不是用 XML 实现的。然而,新MaterialButton的很容易获得它:

只需在您的布局中定义按钮:

 <com.google.android.material.button.MaterialButton
        app:cornerRadius="0dp"
        android:paddingLeft="24dp"
        android:paddingRight="12dp"
        .../>
Run Code Online (Sandbox Code Playgroud)

然后只需使用ShapeAppearanceModel来定义自定义形状。

      float size = getResources().getDimension(R.dimen.cutout_size); //18dp
      TriangleEdgeTreatment triangleEdgeTreatment = new TriangleEdgeTreatment(size,true);
      CutCornerTreatment cutCornerTreatment = new CutCornerTreatment(size);

      button.setShapeAppearanceModel(button.getShapeAppearanceModel()
          .toBuilder()
          .setLeftEdge(triangleEdgeTreatment)
          .setTopRightCorner(cutCornerTreatment)
          .setBottomRightCorner(cutCornerTreatment)
          .build());
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

使用更多按钮(使用button.setBackgroundTintList(..)app:backgroundTint="..."在 xml 中更改背景颜色),您可以获得如下内容:

在此处输入图片说明