Скругленные углы и границы в Android Studio - PullRequest
3 голосов
/ 12 февраля 2020

Я хочу добавить закругленные углы и границы в текстовое представление. Но только верхние углы должны быть закруглены, а нижние должны быть без рамки. Уже нашел это:

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

Но тогда у меня тоже закругленные углы внизу.

Как я могу это изменить?

Ответы [ 3 ]

0 голосов
/ 12 февраля 2020

В библиотеке компонентов материалов вы можете использовать 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);

enter image description here

0 голосов
/ 12 февраля 2020

Create Draweable 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" />

Также полезно это решение для вас: Click Me

Надеюсь, это поможет вам

0 голосов
/ 12 февраля 2020

Создайте нарисованный файл следующим образом:

    <?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>

И затем примените его в качестве фона любого элемента управления, и вот вам go, все готово.

...