Android Kotlin Button Style - outline, text button

Notepad96

·

2021. 12. 7. 23:46

300x250

 

 


1. 결 과

 

 


2. activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        style="@style/DefaultButton"
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_margin="30dp"
        android:text="Default Button" />

    <Button
        style="@style/OutLineButton"
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_margin="30dp"
        android:text="OutLine Button" />

    <Button
        style="@style/TextButton"
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_margin="30dp"
        android:text="Text Button" />
</LinearLayout>

# 각각의 버튼은 기본 버튼, 테두리 있는 버튼, 텍스트 형 버튼 스타일을 갖는다.

 

 


3. styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="DefaultButton" parent="Widget.MaterialComponents.Button">
        <item name="strokeColor">#008800</item>
        <item name="strokeWidth">4dp</item>
        <item name="android:textColor">@color/black</item>
        <item name="backgroundTint">#eeffee</item>
    </style>

    <style name="OutLineButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
        <item name="strokeColor">#aa0000</item>
        <item name="strokeWidth">4dp</item>
        <item name="backgroundTint">#333333</item>
        <item name="android:textColor">@color/white</item>
    </style>

    <style name="TextButton" parent="Widget.MaterialComponents.Button.TextButton">
        <item name="android:textColor">@color/black</item>
    </style>

</resources>

 

# 버튼 스타일은 기본적으로 'Widget.MaterialComponents.Button'을 상속 받아서 선언

 

# strokeColor로 테두리 색을, strokeWidth로 테두리 굵기를 변경 가능

 

# Button과 OutlinedButton, TextButton의 차이는 각 이름의 맞게 커스텀 되어 있는 것

 

예를 들어 TextButton의 테두리는 투명하다.

 

따라서 Button을 사용하여 직접 커스텀하면 다른 스타일을 사용하지 않아도 무관하다.

 

values 아래 styles.xml 파일 생성

 


4. 전체 코드

 

 

GitHub - Notepad96/BlogExample

Contribute to Notepad96/BlogExample development by creating an account on GitHub.

github.com

 

300x250