Rounded view with title and text inside

こ雲淡風輕ζ 提交于 2019-12-24 09:04:33

问题


How can I make this? It looks nice and I'd like to use something like this.

The lines at the top should correspond to the end of the title


回答1:


Actually, these types of view are mostly done with custom views.

This tutorial is useful for custom views.

But you can cheat a little bit, create backgound.xml inside the drawable folder, and paste the code:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">

    <stroke android:color="@color/blue" android:width="4dp"/>
    <corners android:radius="10dp"/>
    <solid android:color="@color/white"/>
</shape>

then create custom_background.xml for your layout, and paste the following code

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        xmlns:app="http://schemas.android.com/apk/res-auto"
    >
    <LinearLayout

            android:background="@drawable/background"

            android:layout_marginTop="15dp"
            android:layout_marginStart="10dp"
            android:layout_marginEnd="10dp"
            android:layout_marginBottom="10dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <TextView
                android:textSize="20sp"
                android:textAlignment="center"
                android:textColor="@color/blue"
                android:layout_gravity="center"
                android:text="Something"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>

    </LinearLayout>
    <TextView
            android:padding="2dp"
            android:textColor="@color/blue"
            android:textSize="25sp"
            android:background="@color/white"
            android:layout_marginStart="50dp"
            android:text="Title"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
    />

</androidx.constraintlayout.widget.ConstraintLayout>

Then you will get the following picture

Note

  • I am using androidX
  • Instead of LinearLayout you can place any layout



回答2:


1) Migrate your project to androidx.
2) Include dependency in your build.gradle:

implementation 'com.google.android.material:material:1.0.0'

3) Use in your layout:

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_height="wrap_content"
    android:hint="@string/hint_text">

  <com.google.android.material.textfield.TextInputEditText
      android:layout_width="match_parent"
      android:layout_height="wrap_content"/>

</com.google.android.material.textfield.TextInputLayout>

4) Don't forget to change your Base Application Theme AppTheme to Material Component theme.

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>

You need to use material component theme!!



来源:https://stackoverflow.com/questions/56565603/rounded-view-with-title-and-text-inside

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!