我正在开发一个 Android 应用程序,我想创建一个顶部有明显切口的自定义 TicketView。我正在使用 com.vipulasri:ticketview 库,并且我已经成功创建了一个基本的 TicketView。然而,我正在努力弄清楚如何在顶部添加切口以赋予其独特的外观。
这是我想要实现的目标的示例:
我检查了库的文档,但找不到有关如何创建这样的剪切图的任何具体信息。
有人可以指导我如何实现这种效果吗?我是否需要创建一个自定义背景可绘制对象,或者有没有办法修改 TicketView 属性来添加此切口?
如果有任何代码示例或分步说明来帮助我在 Android 应用程序中实现这一点,我将不胜感激。预先感谢!
我尝试过的:
<com.vipulasri.ticketview.TicketView
android:id="@+id/ticketView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:tv_backgroundColor="#FF5733"
app:tv_cornerRadius="4dp"
app:tv_dashHeight="10dp"
app:tv_dashGap="4dp"
app:tv_text="Sample Ticket"
app:tv_textColor="#FFFFFF"
app:tv_textSize="16sp" />
您可以使用这个库代替。它有一个很好的特性
app:ticketPunchLocation
,你可以从任何你想要的一侧切出半圆。例如 app:ticketPunchLocation="top|bottom"
将从顶部和底部切出半圆。如需偷工减料,请使用app:ticketPunchRadius
。
因此,在您的情况下,请使用以下内容(根据您的目标进行更改。使用所有功能以达到您想要实现的目标):
<com.passid.android.ticketview.TicketView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
app:ticketBackgroundColor="@color/white"
app:ticketCornerType="rounded"
app:ticketElevation="20dp"
app:ticketOrientation="vertical"
app:ticketPunchLocation="top"
app:ticketPunchRadius="24dp"
app:ticketShowBorder="false"
app:ticketShowDivider="true">
<!-- your views -->
</com.passid.android.ticketview.TicketView>