1. 程式人生 > >Android的selector,背景選擇器

Android的selector,背景選擇器

首先android的selector是在drawable/xxx.xml中配置的,相關圖片放在同目錄下。

先看一下listview中的狀態:
把下面的XML檔案儲存成你自己命名的.xml檔案(比如list_item_bg.xml),在系統使用時根據ListView中的列表項的狀態來使用相應的背景圖片。

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 預設時的背景圖片-->
    <item
android:drawable="@drawable/pic1" />
<!-- 沒有焦點時的背景圖片 --> <item android:state_window_focused="false" android:drawable="@drawable/pic1" /> <!-- 非觸控模式下獲得焦點並單擊時的背景圖片 --> <item android:state_focused="true" android:state_pressed="true" android:drawable
= "@drawable/pic2" />
<!-- 觸控模式下單擊時的背景圖片--> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/pic3" /> <!--選中時的圖片背景--> <item android:state_selected="true" android:drawable="@drawable/pic4"
/>
<!--獲得焦點時的圖片背景--> <item android:state_focused="true" android:drawable="@drawable/pic5" /> </selector>

使用xml檔案:
1.方法一:在listview中配置android:listSelector=”@drawable/xxx”
或者在listview的item中新增屬性android:background=”@drawable/xxx”

2.方法二:是
Drawable drawable = getResources().getDrawable(R.drawable.xxx);
ListView.setSelector(drawable);
但是這樣會出現列表有時候為黑的情況,需要加上:android:cacheColorHint=”@android:color/transparent”使其透明。

相關屬性:
android:state_selected是選中
android:state_focused是獲得焦點
android:state_pressed是點選
android:state_enabled是設定是否響應事件,指所有事件
根據這些狀態同樣可以設定button的selector效果。也可以設定selector改變button中的文字狀態。

以下是配置button中的文字效果:
drawable/button_font.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_selected="true" android:color="#FFF" />
        <item android:state_focused="true" android:color="#FFF" />
        <item android:state_pressed="true" android:color="#FFF" />
        <item android:color="#000" />
</selector>

Button還可以實現更復雜的效果,例如漸變
drawable/button_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">           
        <item android:state_pressed="true">//定義當button 處於pressed 狀態時的形態。
                <shape>
                        <gradient android:startColor="#8600ff" />
                        <stroke     android:width="2dp" android:color="#000000" />
                        <corners android:radius="5dp" />
                        <padding android:left="10dp" android:top="10dp"
                                         android:bottom="10dp" android:right="10dp"/>
                </shape>
        </item>
        <item android:state_focused="true">//定義當button獲得 focus時的形態
                <shape>
                        <gradient android:startColor="#eac100"/>
                        <stroke     android:width="2dp" android:color="#333333"    color="#ffffff"/>
                        <corners android:radius="8dp" />
                        <padding android:left="10dp" android:top="10dp"
                                         android:bottom="10dp" android:right="10dp"/>
                </shape>
        </item>
</selector>

最後,需要在包含 button的xml檔案裡新增兩項。假如是 main.xml 檔案,
我們需要在里加兩項。
android:focusable=”true”
android:backgroud=”@drawable/button_color”
這樣當你使用Button的時候就可以甩掉系統自帶的那黃顏色的背景了,實現個性化的背景,配合應用的整體佈局非常之有用啊。

相關推薦

淺談android的selector背景選擇

關於listview和button都要改變android原來控制元件的背景,在網上查找了一些資料不是很全,所以現在總結一下android的selector的用法。 首先android的selector

Android的selector背景選擇

首先android的selector是在drawable/xxx.xml中配置的,相關圖片放在同目錄下。 先看一下listview中的狀態: 把下面的XML檔案儲存成你自己命名的.xml檔案(比如list_item_bg.xml),在系統使用時根據ListV

AndroidsetTextColor等背景選擇設定失敗問題及多種設定方法

前言: 最近使用背景選擇器設定CheckBox,等一些控制元件時,背景選擇器失效,可以使用以下2種方法,一般都能解決。 準備: 在res->color資料夾下建立一個顏色的背景選擇器,命名為:text_black2white,黑到白的變化。 &

android selector 背景選擇的使用 button (未點選點選選中保持狀態)效果實現

 <ImageButton                 android:layout_marginRight="15dp"                 android:background="@null"                 android:id="@+id/stop"      

jquery的基礎知識復習(基礎選擇屬性選擇層級選擇)

兩個 不包含 註意 空格 如果 頁面 pre log cnblogs      1.基礎選擇器                id選擇器: $("#id"), 樣式選擇器:$(".className"),元素選擇器:$("div"),$("*") 選擇頁面所有的元素   

什麽是 jQuery 和jQuery的基本選擇層級選擇基本篩選

核心 msg 操作 prototype 頁面 影響 框架 標簽 偶數 jQuery是什麽? [1] jQuery由美國人John Resig創建,至今已吸引了來自世界各地的眾多 javascript高手加入其team。 [2] jQuery是繼prototype之

css3第三篇選擇二(群組組合選擇)

群組選擇器 給多個選擇器新增同樣的css樣式效果。作用:優化程式碼,減少重複。 <!DOCTYPE html> <html lang="en"> <head>

ARCEngine中的顏色瀏覽器物件(ColorBrowser)顏色選擇物件(ColorSelector)顏色板物件(Colorpalatte)

目錄 顏色瀏覽器物件(ColorBrowser): 顏色選擇器物件(ColorSelector): 顏色板物件(Colorpalatte): 名稱空間:ESRI.ArcGIS.Framework; GetRGB函式: private IColor GetR

css_day02_各種選擇基本使用(相鄰兄弟選擇+兄弟選擇~)

1.交集選擇器 格式: 選擇器1選擇器2{ } 效果: 2.並集選擇器 . . . . . . . . . . <———————————-華

CSS 選擇元素選擇和類選擇的區別是什麼?

元素選擇器是最常見的 CSS 選擇器,即,文件的元素就是最基本的選擇器。選擇器通常是某個 HTML 元素,比如<p>、<h1>、<em>、<a>等,甚至可以是<html>元素本身。 類選擇器用於將樣式

css基本選擇id選擇class選擇標籤選擇*萬用字元選擇逗號 空格 + >

全棧工程師開發手冊 (作者:欒鵬) css基本選擇器 包括id選擇器,class選擇器,標籤選擇器,*萬用字元選擇器,以及使用逗號實現查詢集合,空格實現查詢後代,>實現查詢子元素,

css學習——標籤選擇id選擇選擇後代選擇

1.標籤選擇器:根據指定的標籤名稱,在當前介面中找到所有該名稱的標籤,然後設定屬性  格式:標籤名稱             {                屬性名稱:屬性值             }  注意點:標籤選擇器選中的是當前頁面所有的該名稱的標籤 2.id選擇

css學習3——子元素選擇交集選擇並集選擇兄弟選擇選擇

1.子元素選擇器:找到指定標籤中所有特定的直接子元素  格式:    標籤名稱1>標籤名稱2{              屬性名稱:屬性值;   }  含義:找到名稱為標籤名稱1的標籤,然後在標籤名稱1中找到直接連線的所有名稱為標籤名稱2的元素 注意點:  * 子元素

006---css複合選擇(交集選擇並集選擇後代選擇子元素選擇屬性選擇偽元素選擇

複合選擇器是由兩個或讀個基礎選擇器,通過不同的方式組合成的,目的是為了可以選擇更準確的目標元素。一、交集選擇器例如:<div class="orange">I am P1</div> <p class="orange">I am P2<

css3選擇--基本選擇層次選擇屬性選擇

        對HTML頁面中的元素使用CSS實現一對一,一對多或者多對一的控制,要用到CSS選擇器。在大篇CSS程式碼中,並沒有說明什麼樣式服務於什麼元素,只是在元素中使用了class屬性。而cl

css各種選擇元素標籤選擇選擇id選擇選擇的組合

3 元素(標籤)選擇器: 格式 標籤名(html元素){ /*CSS樣式程式碼*/ } 使用範圍,是將同樣的樣式,作用在多個同名的標籤上。 4 類選擇器: <span>我是紅色</

史上最全的BeautifulSoup解析(基本選擇標準選擇css選擇

#寫在前面基本使用html = """ <html><head><title>The Dormouse's story</title></head> <body> <p class="title"

css 的基本選擇複合選擇後代選擇

基本CSS選擇器有標記選擇器、類別選擇器、ID選擇器3種1。標記選擇器    每一種HTML標記的名稱都可以作為相應的標記選擇器的名稱,如h1,p,等等2。類別選擇器    類別選擇器的名稱可以由使

css標籤選擇選擇

一,類選擇器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>10-css類選擇器.ht

[html5入門-2]html5選擇之標籤選擇id選擇和類選擇

標籤選擇器,id選擇器和類選擇器為html5三種常用的選擇器 一.標籤選擇器 語法: 標籤名{ css樣式1; css樣式2;  ...... } 舉例說明,使用標籤選擇器建立分別建立一個div標籤和一個p標籤,程式碼如下: <!DOCTYPE html> &l