xml中,button改變背景顏色方法

在畫幾個設置界面,用到了button控件,對於button空間的背景色在不一樣狀態下的顏色改變方法,作了一下嘗試,發現了兩種背景顏色改變的方法,就總結了下。android

方法一嘗試了好多遍纔好,要點在於,在selector中android:drawable="@drawable/button_focus"引號中爲xml文件,此xml文件爲color類型,且在此color xml文件中spa

<color xmlns:android="http://schemas.android.com/apk/res/android"orm

   

    android:color="@color/button_focus_color">  <!-- 注意此處android:color的位置 -->xml

   

</color>圖片

android:color="@color/button_focus_color"在color控件中。utf-8

 

方法一:填充button背景顏色的方法it

       

在factory_reset這個xml文件中,其具體xml文件爲:io

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"coding

   

    android:layout_width="560px"

    android:layout_height="348px"

    android:background="#212121"

         android:orientation="vertical"

        android:layout_gravity="center_vertical|center_horizontal">

   

        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="wrap_content" >   <!-- 怎樣設置 -->

           

            <TextView

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:gravity="center|bottom"

                android:text="肯定要恢復出廠設置嗎?"

                android:textColor="#e6e6e6"

                android:textSize="34px"

                android:paddingTop="68px"

                />

           

        </LinearLayout>

       

        <LinearLayout

             android:layout_width="match_parent"

             android:layout_height="match_parent"

             android:orientation="vertical"

             android:gravity="center_horizontal" >

           

        <Button

                android:id="@+id/bn1"

                android:layout_width="520px"

                android:layout_height="72px"

                android:text="保存"

                android:textSize="28px"

                android:gravity="center_vertical|center_horizontal"

                android:layout_marginBottom="18px"

                android:layout_marginTop="60px"

                android:background="@drawable/button_background_selector"           

                android:textColor="@drawable/button_text_selector"

                />

            <Button

                android:id="@+id/bn2"

                android:layout_width="520px"

                android:layout_height="72px"        

                android:text="取消"

                android:textSize="28px"

                android:gravity="center_vertical|center_horizontal"

                android:background="@drawable/button_background_selector"

                android:textColor="@drawable/button_text_selector"

                />     

            

        </LinearLayout>

 

</LinearLayout>

 

其中的Button,以第一個爲例:

 

    <Button

                android:id="@+id/bn1"

                android:layout_width="520px"

                android:layout_height="72px"

                android:text="保存"

                android:textSize="28px"

                android:gravity="center_vertical|center_horizontal"

                android:layout_marginBottom="18px"

                android:layout_marginTop="60px"

                android:background="@drawable/button_background_selector"           

                android:textColor="@drawable/button_text_selector"

                />

其中button_background_selectorxml文件,可在res中新建drawable文件夾並將其放置到其中,具體爲

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

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

   

    <item android:state_focused="true" android:drawable="@drawable/button_focus" > </item>

    <item android:drawable="@drawable/button_default" > </item>

 

</selector>

其中button_focus以及button_default也分別爲xml文件,放在drawalbe文件夾中

button_focus.xmlxml文件具體爲:

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

<color xmlns:android="http://schemas.android.com/apk/res/android"

   

    android:color="@color/button_focus_color">

   

</color>

 

button_default.xmlxml文件具體爲:

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

<color xmlns:android="http://schemas.android.com/apk/res/android"

   

    android:color="@color/button_default_color">

   

</color>

 

其中的button_focus_colorbutton_default_colorvalues文件夾中新建的color.xml文件中定義的,具體代碼以下:

 

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

<resources>

    <color name="button_focus_color">#004B64</color>

    <color name="button_default_color">#3B3B3B</color>

    <color name="text_focus_color">#ffffff</color>

    <color name="text_default_color">#e6e6e6</color>       

</resources>

 

 

方法二:採用9patch圖片作button背景圖片的方法

在factory_reset這個xml文件中,其具體xml文件爲:(跟方法一中的代碼是同樣的,方法二隻是改變了button_background_selector這個xml文件裏的東西

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

   

    android:layout_width="560px"

    android:layout_height="348px"

    android:background="#212121"

         android:orientation="vertical"

        android:layout_gravity="center_vertical|center_horizontal">

   

        <LinearLayout

            android:layout_width="match_parent"

            android:layout_height="wrap_content" >   <!-- 怎樣設置 -->

           

            <TextView

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:gravity="center|bottom"

                android:text="肯定要恢復出廠設置嗎?"

                android:textColor="#e6e6e6"

                android:textSize="34px"

                android:paddingTop="68px"

                />

           

        </LinearLayout>

       

        <LinearLayout

             android:layout_width="match_parent"

             android:layout_height="match_parent"

             android:orientation="vertical"

             android:gravity="center_horizontal" >

           

        <Button

                android:id="@+id/bn1"

                android:layout_width="520px"

                android:layout_height="72px"

                android:text="保存"

                android:textSize="28px"

                android:gravity="center_vertical|center_horizontal"

                android:layout_marginBottom="18px"

                android:layout_marginTop="60px"

                android:background="@drawable/button_background_selector"           

                android:textColor="@drawable/button_text_selector"

                />

            <Button

                android:id="@+id/bn2"

                android:layout_width="520px"

                android:layout_height="72px"        

                android:text="取消"

                android:textSize="28px"

                android:gravity="center_vertical|center_horizontal"

                android:background="@drawable/button_background_selector"

                android:textColor="@drawable/button_text_selector"

                />     

            

        </LinearLayout>

 

</LinearLayout>

 

 

其中的Button,以第一個爲例:

 

    <Button

                android:id="@+id/bn1"

                android:layout_width="520px"

                android:layout_height="72px"

                android:text="保存"

                android:textSize="28px"

                android:gravity="center_vertical|center_horizontal"

                android:layout_marginBottom="18px"

                android:layout_marginTop="60px"

                android:background="@drawable/button_background_selector"           

                android:textColor="@drawable/button_text_selector"

                />

其中button_background_selectorxml文件,可在res中新建drawable文件夾並將其放置到其中,具體爲:

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

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

   

    <item android:state_focused="true" android:drawable="@drawable/button_pressed" > </item>

    <item android:drawable="@drawable/button_normal" > </item>

 

</selector>

因爲這裏給出了button_pressedbutton_normal這兩個9patch背景圖片,因此能夠直接用android:drawable=「兩張9patch圖片的位置」來改變button的背景。

         其中在res中新建了drawable文件夾,並在裏邊放了button_pressedbutton_normal這兩個9patch圖片,以下圖所示:

 

                         

button_normal.9.png                           button_pressed.9.png

相關文章
相關標籤/搜索