gpt4 book ai didi

java - 消息气泡自定义绘图

转载 作者:行者123 更新时间:2023-12-04 03:51:20 28 4
gpt4 key购买 nike

我将分享下面的图片,我想在原生 Android 中开发我的消息气泡 Have to make like this

我已经在 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>

上面的代码看起来像这样The Above code

请帮助我如何制作第一张图片。

谢谢

最佳答案

您可以使用 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>

然后您可以使用内置的 MarkerEdgeTreatment 应用自定义 ShapeAppearanceModel,在给定圆的半径的情况下在边缘绘制箭头。像这样的东西:

    val markerEdgeTreatment = MarkerEdgeTreatment(cardview.radius)
val offsetEdgeTreatment = OffsetEdgeTreatment(markerEdgeTreatment, 90f)

cardview.setShapeAppearanceModel(
cardview.getShapeAppearanceModel()
.toBuilder()
.setRightEdge(offsetEdgeTreatment)
.build()
)

enter image description here

您还可以自定义边的形状,扩展 EdgeTreatment 并覆盖 getEdgePath 方法。

注意:至少需要 Material 组件库的 1.2.0 版本。

关于java - 消息气泡自定义绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64399682/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com