Android TextView 自定義布局

一、前言:

我們在工作中經(jīng)常遇到自定義背景,下面我就 以 TextView 舉例,寫幾個常見的Text 常見的背景。比如:自定義圓角邊框,自定義圓角背景漸變色,自定義下邊框,自定義右邊框,自定義字體背景。

gitHub 地址:

效果圖如下:

效果圖.png

二、使用:

1. box_blue.xml 自定義布局

第1個自定義圓角邊框

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="10dp" />
    <!-- 實心 -->
    <solid android:color="@color/white" />
    <!-- 邊框 -->
    <stroke
        android:width="1dp"
        android:color="@color/btn_press_bg_color" />
    <!-- 邊距 -->
    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />
</shape>

效果:


image.png

2. gradual_box.xml 自定義布局

第2個自定義圓角背景漸變色

<?xml version="1.0" encoding="utf-8"?>
<!--為TextView加邊框。須要在drawable建xml文件,里面設(shè)置shape來設(shè)置文本框的特殊效果。-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!-- 圓角 -->
    <corners android:radius="10dp" />
    <!-- 實心 -->
    <solid android:color="#ffffffff" />
    <!-- 邊框 -->
    <stroke
        android:width="1dp"
        android:color="#FF4081" />

    <!-- 邊距 -->
    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />

    <!-- 漸變 -->
    <gradient
        android:angle="270"
        android:endColor="#FFF782"
        android:startColor="#FF13C7AF" />
</shape>

效果:

image.png

基本上經(jīng)常使用的就這幾種,要達(dá)到非常好的效果,須要仔細(xì)地調(diào)整。
以下是要在用到這個shape的TextView設(shè)置背景就可以。

3. line_blue_bottom.xml 自定義布局

第3個自定義下邊框

<?xml version="1.0" encoding="utf-8"?>

<!--這是兩層布局嵌套,可以隨意定義任何一邊-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 主布局 -->
<item>
    <shape>
        <!-- 實心 -->
        <solid android:color="@color/btn_press_bg_color" />
    </shape>
</item>
<!-- 第二層布局,相對于主布局提升 1dp -->
<!-- 相對于主布局,距離底部 1dp 的距離 -->
<item android:bottom="@dimen/dp_1">
    <shape>
        <!-- 實心 -->
        <solid android:color="@color/white" />
    </shape>
</item>
</layer-list>

效果:


image.png

4. line_blue_right.xml 自定義布局

第4個自定義右邊框

<?xml version="1.0" encoding="utf-8"?>

<!--這是兩層布局嵌套,可以隨意定義任何一邊-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 主布局 -->
<item>
    <shape>
        <solid android:color="@color/btn_press_bg_color" />
    </shape>
</item>
<!-- 第二層布局,相對于主布局提升 1dp -->
<item android:right="@dimen/dp_1">
    <shape>
        <solid android:color="@color/white" />
    </shape>
</item>
</layer-list>

效果:


image.png

5. entity_red.xml 自定義布局

第5個自定義字體背景

<!--這是兩層布局嵌套,可以隨意定義任何一邊-->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 主布局 -->
    <item>
        <shape>
            <!-- 實心 -->
            <solid android:color="@color/white" />
        </shape>
    </item>
    <!-- 第二層布局 -->
    <!-- 相對于主布局距離頭部 10dp -->
    <!-- 相對于主布局距離底部 10dp -->
    <item
        android:bottom="@dimen/dp_8"
        android:top="@dimen/dp_8">
        <shape>
            <!-- 實心 -->
            <solid android:color="@color/color_ffe04f5d" />
        </shape>
    </item>
</layer-list>

效果:

image.png

5. activity_three.xml 布局調(diào)用

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


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"

        >
        <TextView
            android:id="@+id/tv_text1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="方框:"
            android:textSize="@dimen/dp_20"
            android:layout_gravity="center_vertical"
            />


        <TextView
            android:layout_marginLeft="@dimen/dp_20"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/box_blue"
            android:layout_gravity="center_vertical"
            android:text="0"
            android:textSize="@dimen/dp_20"
            android:gravity="center"
            />
    </LinearLayout>



    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"

        >
        <TextView
            android:id="@+id/tv_text5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="漸變的方框:"
            android:textSize="@dimen/dp_20"
            android:layout_gravity="center_vertical"
            />


        <TextView
            android:layout_marginLeft="@dimen/dp_20"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/gradual_box"
            android:layout_gravity="center_vertical"
            android:text="0"
            android:textSize="@dimen/dp_20"
            android:gravity="center"
            />
    </LinearLayout>



    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"

        >
        <TextView
            android:id="@+id/tv_text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="下方框:"
            android:textSize="@dimen/dp_20"
            android:layout_gravity="center_vertical"
            />


        <TextView
            android:layout_marginLeft="@dimen/dp_20"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/line_blue_bottom"
            android:layout_gravity="center_vertical"
            android:text="0"
            android:textSize="@dimen/dp_20"
            android:gravity="center"
            />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"

        >
        <TextView
            android:id="@+id/tv_text3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="右方框:"
            android:textSize="@dimen/dp_20"
            android:layout_gravity="center_vertical"
            />


        <TextView
            android:layout_marginLeft="@dimen/dp_20"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:background="@drawable/line_blue_right"
            android:layout_gravity="center_vertical"
            android:text="0"
            android:textSize="@dimen/dp_20"
            android:gravity="center"
            />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"

        >
        <TextView
            android:id="@+id/tv_text4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="字體背景:"
            android:textSize="@dimen/dp_20"
            android:layout_gravity="center_vertical"
            />


        <TextView
            android:layout_marginLeft="@dimen/dp_8"
            android:layout_width="wrap_content"
            android:layout_height="30dp"
            android:background="@drawable/entity_red"
            android:layout_gravity="center_vertical"
            android:text="我的心略大于宇宙!"
            android:textSize="@dimen/dp_20"
            android:gravity="center"
            />
    </LinearLayout>
</LinearLayout>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、屬性選擇器:id選擇器 # 通過id 來選擇類名選擇器 . 通過類名來選擇屬性選擇器 ...
    Yuann閱讀 1,753評論 0 7
  • 一、CSS入門 1、css選擇器 選擇器的作用是“用于確定(選定)要進行樣式設(shè)定的標(biāo)簽(元素)”。 有若干種形式的...
    寵辱不驚丶?xì)q月靜好閱讀 1,729評論 0 6
  • CSS參考手冊 一、初識CSS3 1.1 CSS是什么 CSS3在CSS2.1的基礎(chǔ)上增加了很多強大的新功能。目前...
    沒汁帥閱讀 4,282評論 1 13
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,438評論 0 11
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,663評論 1 32

友情鏈接更多精彩內(nèi)容