如何在Android中创建顶部有剪切的TicketView?

qv7cva1a  于 12个月前  发布在  Android
关注(0)|答案(1)|浏览(75)

我正在开发一个Android应用程序,我想创建一个自定义的TicketView,顶部有一个独特的剪切。我使用的是com.vipulasri:ticketview库,我已经成功地创建了一个基本的TicketView。然而,我很难弄清楚如何在顶部添加一个剪切,以给予它一个独特的外观。
这里有一个例子,我正在努力实现:
x1c 0d1x的数据
我已经检查了库的文档,但我找不到任何关于如何创建这样的剪切的具体信息。
有没有人可以指导我如何实现这个效果?我需要创建一个自定义的背景绘图,或者有没有办法修改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" />

字符串

jw5wzhpr

jw5wzhpr1#

你可以使用Android TicketView library代替。它有一个很好的属性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>

字符串


的数据

**更新:**如果上面的不起作用,请尝试像其他类一样将add the main classesits attributes放入您的项目。
**更新2:**你也可以使用similar TicketView library,它工作得很好。See this example:(使用boundary_topItemQuantityboundary_bottomItemQuantity控制顶部和底部的圆圈

<com.lilincpp.ticketview.support.view.TicketView
        android:id="@+id/ticketview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        app:boundary_bottomItemQuantity="1"
        app:boundary_bottomRadius="24dp"
        app:boundary_hasStroke="true"
        app:boundary_roundCorner="4dp"
        app:boundary_shadowPx="8dp"
        app:boundary_show="left|right|top|bottom"
        app:boundary_strokeWidth="1dp"
        app:boundary_topItemQuantity="1"
        app:boundary_topDrawWeight="0.21"
        app:boundary_topRadius="24dp">
   .... 

   </com.lilincpp.ticketview.support.view.TicketView>

相关问题