1. 程式人生 > >Androidstudio之TextView點選變色

Androidstudio之TextView點選變色

使用環境:

 1 文字資訊點選變色

           1.1 點選變色,再點選恢復顏色

         1.2 點選變色,鬆開恢復

1.1 處理方法:

<TextView
android:id="@+id/textWorker"
android:layout_margin="@dimen/five"
android:layout_width="90dp"
android:layout_height="30dp"
android:gravity="center"
android:text="@{worker.workerName}"
android:textSize="12sp"
android
:textColor="@drawable/workeritemtext" android:background="@drawable/worker_bg" />

背景的drawable: worker_bg

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="false">
        <shape>
            <corners 
android:radius="@dimen/five"/> <stroke android:width="@dimen/one" android:color="@color/tv_2"/> </shape> </item> <item android:state_selected="true"> <shape> <corners android:radius="@dimen/five"/> <stroke android
:width="@dimen/one" android:color="@color/tv_blues"/> </shape> </item> </selector>

text子體顏色的drawable

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

這樣就完了嗎?是的,正常情況下是這樣,但是不正常情況下點選是無效的。

處理方法:

在TextView的點選事件裡新增一個判斷:

if (text.isSelected()) {
    text.setSelected(false);
}else{
    text.setSelected(true);
}
 這時候,上邊所做的努力就可以了。

1.2 點選變色鬆開恢復:

直接上draw able

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="false">
        <shape>
            <corners android:radius="@dimen/five"/>
            <stroke android:width="@dimen/one" android:color="@color/tv_2"/>
        </shape>
    </item>
    <item android:state_pressed="true">
        <shape>
            <corners android:radius="@dimen/five"/>
            <stroke android:width="@dimen/one" android:color="@color/tv_blues"/>
        </shape>
    </item>
</selector>

其他就不需要什麼操作了

相關推薦

AndroidstudioTextView變色

使用環境:  1 文字資訊點選變色            1.1 點選變色,再點選恢復顏色          1.2 點選變色,鬆開恢復 1.1 處理方法: <TextView android:id="@+id/textWorker" android:layout

android textview變色 鬆開恢復或不恢復

   一、textview 點選變色,鬆開恢復。效果如左圖:    二、鬆開後不恢復。如右圖:                                                                一、textview 點選變色,鬆開恢復

【日常新手入門】android變色

實現點選button改變button的顏色只需要在drawable中新增selector.xml檔案即可<selector xmlns:android="http://schemas.android.com/apk/res/android">           

Vue.js指令小練習001 列表變色

需求: 分析: 給li繫結一個背景色樣式,當你點選這個li的時候,這個li背景色的樣式生效,其他的li背景色樣式不生效 程式碼: <!DOCTYPE html> <html> <head> <meta charset="UTF-8

Android MaterialDesign水波效果的幾種實現方法

什麼是水波點選的效果? 下面是幾種不同的實現方法的效果圖以及實現方法   Video_2016-08-31_003846 如何實現? 方法一 使用

超連結按鈕變色,原來的連結恢復原色

視訊播放列表的超連結按鈕點選變色,原來的恢復原色,主要是讓使用者清楚的知道此刻播放的是哪一集。這裡所說的實現方法並不是利用css的link、hover、active所實現的,雖然css也能做到超連結點選變色,但是卻不能用到這裡的需求上,因為css實現的點選變色,是不能再點選頁面其他地方的,很顯然,看視訊的時候

monkeyrunner入門滑動螢幕(三)

細節都寫在裡面了哦,仔細看。。 device.touch裡面的數字是手機螢幕的座標,手機螢幕的座標這樣得知: 開啟設定–系統—開發者選項–指標座標 #device.drag(X,Y,D,S) #X 開始座標 #Y 結束座標 #D 拖動持續時間(以秒為單位),預設1.0秒 #S 插值點時要

踩坑記錄vue事件

這周遇到了一個小問題,這裡簡單的總結一下。避免遇到同樣的問題。 問題:簡單來說就是,點選(父元素)的時候觸發事件,而點選(子元素)的時候會觸發(父元素)的事件。 itemClick方法 1 itemClick(e) { 2 let $form = e.currentTarget.

vue變色

<template> <div> <router-link to="/w1">點選回去</router-link> <div v-for="(x,index) in list" v-bind:class="{red

SpannableString中的ClickableSpan和Textview事件衝突解決

背景描述:專案中有這樣的需求:在展示評論內容的Textview中展示文字,其中包含3種類型資料: 1、普通文字:評論內容或者回復內容。因為這個Textview是展示評論或者回復的,點選後,要展示軟鍵盤(popupwindow等忽略) 2、股票程式碼:該型別文

iOSUIAlertView視窗之外區域關閉

彈出一個UIAlertView,然後點選視窗之外的區域來關閉UIALertView,程式碼如下: - (IBAction)showAlert:(id)sender { alert = [[UIA

jQuery 實現相同控制元件變色

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html

變色

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>松樹&l

TextView 事件無效的完美解決

最近在開發中遇到這麼一個問題,當使用TextView做成Button的點選事件時(在xml中使用android:onClick="click"屬性設定該TextView的點選方法),點選失去效果,不能

Android TextView效果

在Android開發中,我們有時候需要單獨的點選某一段文字,如圖所示: 如上圖,我們要求點選新使用者註冊這個TextView,為了有更好的使用者體驗,我們肯定要設定該TextView的點選效果。下

AngularJS新增樣式、變色設定

首先解釋需求是這樣的,有個列表,當你點選哪一行時,哪一行背景變成灰色,在JQ中,大家都知道,這是非常容易的,加一個addClass就行了,那麼AngularJS如何實現呢? 下面我們看程式碼部分 <!doctype html> <h

Python+Selenium練習篇17-框-Checkbox

本文介紹Selenium中,如何操作複選 框-Checkbox,最終的方法還是click()。 本來想還是繼續採用for語句來把所有的複選框勾選一遍,例如這樣的場景:註冊一個網站勾選身份或者職業的時候

部落格園主頁特效-滑鼠特效

這個滑鼠點選的效果只需要通過下面這段程式碼即可實現: 將如下程式碼放在頁首、頁尾或者公告欄部分都可以! 1 <script type="text/javascript"> 2 /* 滑鼠特效 */ 3 var a_idx = 0; 4 jQuery(document).re

TextView 、獲得焦點等 改變顏色

有的時候我們需要根據文字是否獲取焦點而改變顏色。 做法如下: 在res目錄下新建color資料夾,在資料夾下新建xxx.xml檔案。 檔案內容如下: <?xml version="1.0" e

Android通知通知欄通知後返回正在執行的程式,而不是一個新Activity

一般的寫法,點選通知欄進入的Activity是一個新建立的Activity,而不是原先正在執行的Activity,這和我的想法是背道而馳的。當你點選返回按鍵退出這個Activity之後,發現,原先正在執行的Activity終於出現了。明顯這樣是不符合條理的。