4

我想为文本视图添加圆角和边框。但只有顶角应该是圆的,底部应该没有边框。已经找到了这个:

https://www.android-examples.com/add-rounded-border-to-textview-programmatically/

但是我在底部也有圆角。

我怎样才能改变这个?

4

3 回答 3

2

像这样创建一个可绘制文件:

    <?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetBottom="-4dp">

    <shape android:shape="rectangle">
        <solid android:color="#FFFFFF" />
        <stroke android:width="4dp" android:color="#000000" />
        <corners android:radius="4dp" />
    </shape>

</inset>

然后将其应用为任何控件的背景,然后就完成了。

于 2020-02-12T12:18:47.527 回答
2

使用材料组件库,您可以使用MaterialShapeDrawable绘制自定义形状

使用 TextView 您可以:

<TextView
    android:id="@+id/tv_rounded"
    android:paddingLeft="8dp"
    ../>

然后创建一个MaterialShapeDrawable. 就像是:

    TextView textview = findViewById(R.id.tv_rounded);
    ShapeAppearanceModel shapeAppearanceModel = new ShapeAppearanceModel()
        .toBuilder()
        .setAllCorners(CornerFamily.ROUNDED,radius)
        .setBottomRightCorner(CornerFamily.ROUNDED,0)
        .setBottomLeftCorner(CornerFamily.ROUNDED,0)
        .build();
    MaterialShapeDrawable shapeDrawable = new MaterialShapeDrawable(shapeAppearanceModel);
    shapeDrawable.setStroke(2.0f, ContextCompat.getColor(this,R.color.xxxx));
shapeDrawable.setFillColor(ContextCompat.getColorStateList(this,R.color.xxx));    
    ViewCompat.setBackground(textview,shapeDrawable);

在此处输入图像描述

于 2020-02-12T13:26:09.347 回答
0

创建可绘制对象rounded_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <padding
        android:bottom="3dp"
        android:left="3dp"
        android:right="3dp"
        android:top="3dp" />

    <stroke
        android:width="1dp"
        android:color="#FFFFFF" />

    <corners
        android:radius="5dp" />

    <size
        android:width="110dp"
        android:height="110dp" />
</shape>

然后在视图的背景属性中设置这个 Drawable

 <TextView
    android:id="@+id/tv_register"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tv_are_you_new_user"
    android:layout_margin="5dp"
    android:background="@drawable/rounded_border"
    android:fontFamily="@font/montserrat"
    android:gravity="center_horizontal"
    android:padding="10dp"
    android:text="Register"
    android:textAllCaps="true"
    android:textColor="@color/blue"
    android:textSize="15sp" />

此解决方案对您也有帮助:单击我

希望这可以帮助你

于 2020-02-12T13:42:54.623 回答