gpt4 book ai didi

java - 在布局底部创建一个三角形

转载 作者:行者123 更新时间:2023-12-02 09:04:18 24 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,该应用程序在 Activity 顶部包含一个形状,我正在尝试实现它,但很难做到。 the shape in the green color

我尝试创建一个可绘制文件,该文件创建一个三角形并设置底角半径以匹配上面的形状,但不起作用。任何人都可以帮助我,拜托。

最佳答案

您可以使用EdgeTreatment纳入官方Material Components Library .

只需使用以下内容扩展 EdgeTreatment:

public class MyTriangleEdge extends EdgeTreatment {

private final float size;
private final boolean inside;

public MyTriangleEdge(float size, boolean inside) {
this.size = size;
this.inside = inside;
}

@Override
public void getEdgePath(
float length, float center, float interpolation, @NonNull ShapePath shapePath) {
shapePath.lineTo(0, 0);
shapePath.lineTo(center, inside ? size : -size );
shapePath.lineTo(length, 0);
}

然后应用它:

MyTriangleEdge edgeTreatment = new MyTriangleEdge(height,false);

LinearLayout linearLayout= findViewById(R.id.xxxx);
ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
.toBuilder()
.setBottomEdge(edgeTreatment)
.build();

MaterialShapeDrawable shapeDrawable = new MaterialShapeDrawable(shapeAppearanceModel);

ViewCompat.setBackground(linearLayout,shapeDrawable);

enter image description here

对于边缘处理,父 View 必须通过在 xml 中设置 android:clipChildren="false" 来禁用 subview 的裁剪。

关于java - 在布局底部创建一个三角形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59944297/

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