Android學(xué)習(xí)筆記——TextView點(diǎn)擊效果

前言

本類文章是我在學(xué)習(xí)過(guò)程中所遇到已經(jīng)解決過(guò)的問(wèn)題(Q.Q),把這些自己已經(jīng)解決過(guò)問(wèn)題發(fā)出來(lái),如果有新手遇到和我類似的問(wèn)題以便能快速解決挪捕,節(jié)省自己的時(shí)間谒府。因?yàn)楸救诉€是菜鳥拼坎,如有錯(cuò)誤希望指正浮毯。

Android 中 Selector 的用法

Selector 用法例子說(shuō)明

在做項(xiàng)目的過(guò)程中有遇到過(guò)這樣一個(gè)問(wèn)題:在點(diǎn)擊一個(gè) TextView 或者 Button 之類的控件時(shí),需要給出點(diǎn)擊的效果泰鸡。比如在一個(gè) Textview 在點(diǎn)擊前文本文字是白色的债蓝,在手指按下時(shí)顏色發(fā)生改變(比如顏色變淺),之后當(dāng)手指松開(kāi)時(shí)文本的顏色恢復(fù)原來(lái)的顏色盛龄,這里的效果圖用的是亮色(藍(lán)色和綠色)想用其他顏色直接替換即可饰迹,效果圖如下:
首先是手指沒(méi)有點(diǎn)下去的時(shí)候:


手指沒(méi)有點(diǎn)下去.png

之后便是手指點(diǎn)下去的時(shí)候:


手指點(diǎn)下去了保持不動(dòng).png

最后就是手指離開(kāi)屏幕:
手指離開(kāi)屏幕.png

也上的效果能夠給客戶比較好的點(diǎn)擊反饋,提高體驗(yàn)余舶。

如何使用 Selector

以 selector_text_color.xml 為例
首先在 res 目錄下新建 drawable 文件夾啊鸭,再在新建的 drawable 文件夾中新建selector_text_color.xml ,其目錄結(jié)構(gòu)為:res/drawable/selector_text_color.xml 欧芽。
這樣就把 selector 給建立好了莉掂,后面要根據(jù)具體的需求要編寫里面的內(nèi)容。

Selector 常用的屬性

android:state_pressed 如果是 true千扔,當(dāng)被點(diǎn)擊時(shí)顯示該圖片憎妙,如果是 false 沒(méi)被按下時(shí)顯示默認(rèn)。
android:state_focused 如果是 true曲楚,獲得焦點(diǎn)時(shí)顯示厘唾;如果是 false 沒(méi)獲得焦點(diǎn)顯示默認(rèn)×埽                  
android:state_selected 如果是 true抚垃,當(dāng)被選擇時(shí)顯示該圖片;是 false 未被選擇時(shí)顯示該圖片趟大『资鳎                  
android:state_checkable 如果值為 true,當(dāng) CheckBox 能使用時(shí)顯示該圖片逊朽;false罕伯,當(dāng) CheckBox 不能使用時(shí)顯示該片∵椿洌                  
android:state_checked 如果值為 true追他,當(dāng) CheckBox 選中時(shí)顯示該圖片;false岛蚤,當(dāng) CheckBox 為選中時(shí)顯示該圖片邑狸。                  
android:state_enabled 如果值為 true涤妒,當(dāng)該組件能使用時(shí)顯示該圖片单雾;false,當(dāng)該組件不能使用時(shí)顯示該圖片。                   
android:state_window_focused 如果值為 true硅堆,當(dāng)此 activity 獲得焦點(diǎn)在最前面時(shí)顯示該圖片蜂奸; false,當(dāng)沒(méi)在最前面時(shí)顯示該圖片硬萍。

Selector 用法的實(shí)例

首先在 res/values/colors.xml 下把顏色的代碼寫進(jìn)去(引用代碼而不是直接寫入顏色的代碼扩所,要不然會(huì)報(bào)錯(cuò)) 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="textBlue">#2196F3</color>
<color name="textGreen">#86cd3e</color>
</resources>

上面三個(gè)是系統(tǒng)自帶的,下面三個(gè)是我自己寫入的朴乖。 之后便是在 drawable 中創(chuàng)建 XML 文件了祖屏,因?yàn)檫@里只是演示,主要還是根據(jù)個(gè)人的需求來(lái)寫买羞,這里是當(dāng)被點(diǎn)擊時(shí)顯示該文字顏色發(fā)生改變袁勺。創(chuàng)建好的文件代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
 <item android:state_pressed="false" android:color="@color/textBlue"/>
 <item android:state_pressed="true" android:color="@color/textGreen"/>
</selector>

之后便是在布局文件中寫入設(shè)置好的屬性,如果是用的是 TextView 只要在 Texview 屬性里面把 android:textColor="XXXXXXX" 里面的改成你原先寫好 drawable 下文件的名字就好畜普,如果是 Button 則修改android:background="XXXXXX" 期丰,這里用的是Textview 則屬性應(yīng)該為 android:textColor="@drawable/selector_text_color"。下面貼上布局文件的代碼(這個(gè)比較簡(jiǎn)單吃挑,實(shí)際還是根據(jù)個(gè)人需求來(lái)做)钝荡。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/activity_main"     
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
 <TextView android:id="@+id/text"   
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content"                 
 android:text="我是可以變色的噢"     
 android:layout_centerInParent="true"      
 android:textColor="@drawable/selector_text_color"/>
</RelativeLayout>

最后只要在 Activity 中初始化 Textview 和添加點(diǎn)擊事件就行了,代碼如下:

package com.example.xiaozhang.myapplication;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
  private TextView mTextView;  
@Override 
 protected void onCreate(Bundle savedInstanceState) {    
super.onCreate(savedInstanceState);   
setContentView(R.layout.activity_main); 
mTextView = (TextView) findViewById(R.id.text);    
mTextView.setOnClickListener(new View.OnClickListener() { 
     @Override public void onClick(View view) {
      } 
   }); 
 }
}

總結(jié)

利用這種方法就可以給客戶提供良好的體驗(yàn)效果舶衬,讓客戶知道了已經(jīng)點(diǎn)擊了該按鈕埠通,也不需要在代碼中設(shè)置多次點(diǎn)擊切換的圖片,減少代碼量逛犹,也減少美工妹子的制作圖片的工作端辱。菜鳥寫作,如有錯(cuò)誤望指正虽画。

參考內(nèi)容

Android中的Selector的用法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舞蔽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子码撰,更是在濱河造成了極大的恐慌渗柿,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灸拍,死亡現(xiàn)場(chǎng)離奇詭異做祝,居然都是意外死亡砾省,警方通過(guò)查閱死者的電腦和手機(jī)鸡岗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)编兄,“玉大人轩性,你說(shuō)我怎么就攤上這事『菰В” “怎么了揣苏?”我有些...
    開(kāi)封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵悯嗓,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我卸察,道長(zhǎng)脯厨,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任坑质,我火速辦了婚禮合武,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘涡扼。我一直安慰自己稼跳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布吃沪。 她就那樣靜靜地躺著汤善,像睡著了一般。 火紅的嫁衣襯著肌膚如雪票彪。 梳的紋絲不亂的頭發(fā)上红淡,一...
    開(kāi)封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音降铸,去河邊找鬼锉屈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛垮耳,可吹牛的內(nèi)容都是我干的颈渊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼终佛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼俊嗽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起铃彰,我...
    開(kāi)封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绍豁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后牙捉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體竹揍,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年邪铲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了芬位。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡带到,死狀恐怖昧碉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤被饿,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布四康,位于F島的核電站,受9級(jí)特大地震影響狭握,放射性物質(zhì)發(fā)生泄漏闪金。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一论颅、第九天 我趴在偏房一處隱蔽的房頂上張望毕泌。 院中可真熱鬧,春花似錦嗅辣、人聲如沸撼泛。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)愿题。三九已至,卻和暖如春蛙奖,著一層夾襖步出監(jiān)牢的瞬間潘酗,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工雁仲, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仔夺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓攒砖,卻偏偏與公主長(zhǎng)得像缸兔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吹艇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,275評(píng)論 25 707
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程惰蜜,因...
    小菜c閱讀 6,444評(píng)論 0 17
  • afinalAfinal是一個(gè)android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,435評(píng)論 2 45
  • 困受神。 好困抛猖。 明天晚上一定寫一下這周干嘛了。怕忘記鼻听,不舍得放過(guò)這周财著。
    趁早退場(chǎng)閱讀 163評(píng)論 1 2
  • 首先恭喜你已經(jīng)脫離單身狗隊(duì)伍,此處所說(shuō)單獨(dú)出去游玩不要鉆牛角尖撑碴,當(dāng)作你追女朋友所用的套路就好撑教。 ...
    MSN陳儒閱讀 4,480評(píng)論 0 0