问题描述
我已经用Custom Drawable XML编写了一些代码,请看一看,我将分享它的外观,首先看一下代码:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<rotate
android:fromdegrees="55"
android:pivotX="100%"
android:pivotY="0%"
android:todegrees="0">
<shape android:shape="rectangle">
<corners android:radius="10dp" />
<solid android:color="#00A1E4" />
</shape>
</rotate>
</item>
<item android:right="28dp">
<shape android:shape="rectangle">
<solid android:color="#00A1E4" />
<corners android:radius="10dp" />
</shape>
</item>
上面的代码如下
请帮助我制作第一张图片。
谢谢
解决方法
您可以使用ShapeAppearanceModel
将自定义EdgeTreatment
应用于小部件,例如CardView
:
<LinearLayout
android:padding="8dp"
android:clipChildren="false"
android:clipToPadding="false"
...>
<com.google.android.material.card.MaterialCardView
android:id="@+id/cardview"
android:layout_height="100dp"
app:cardCornerRadius="24dp"
app:cardBackgroundColor="@color/..."/>
</LinearLayout>
然后,您可以使用内置的 ShapeAppearanceModel
应用自定义MarkerEdgeTreatment
,该自定义 val markerEdgeTreatment = MarkerEdgeTreatment(cardview.radius)
val offsetEdgeTreatment = OffsetEdgeTreatment(markerEdgeTreatment,90f)
cardview.setShapeAppearanceModel(
cardview.getShapeAppearanceModel()
.toBuilder()
.setRightEdge(offsetEdgeTreatment)
.build()
)
在给定圆角半径的边缘上绘制箭头。像这样:
EdgeTreatment
您还可以自定义扩展getEdgePath
并覆盖1.2.0
方法的边缘形状。
注意:它至少需要材料组件库的版本 db.collection.find( { "receivingAgentId": { "_id": ObjectID("5f6bbf5b8b094c14103a777b")} })
。