1. 程式人生 > >ImageView設定selector不起作用原因

ImageView設定selector不起作用原因

用兩張圖片做了個selector,使用ImageView的src或background使用selector點選時,總沒出現點選效果,這是為什麼呢?

一般有兩個原因一個是是否可clickable,一個就是今天要說的原因。

1、對於clickable問題解決方案:

  ① 在xml中加上

 android:clickable="true"

  ② 或程式碼中設定

imageView.setClickable(true);

2、對於今天要說的原因就是在編寫selector的時候,最好將值為true的放前面,如下:

獻上問題程式碼:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/home_recommend_d" android:state_pressed="false"></item>
    <item android:drawable="@drawable/home_recommend_p" android:state_pressed="true"></item>
    
</selector>

上面的例子,使用時不會出現點選效果,可以嘗試一下。

修改後的程式碼程式碼:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/home_recommend_p" android:state_pressed="true"></item>
    <item android:drawable="@drawable/home_recommend_d" android:state_pressed="false"></item>

</selector>

這個例子,會出現點選效果。只是將檔案中兩種狀態的順序換一下,一個在前面一個在後面,即值為true的寫前面,false或者default寫後面。

總結經驗:default /不點選時的效果圖片應該放在最下面,才會有點選效果,不然怎麼點都只顯示default圖片。

相關推薦

ImageView設定selector作用原因

用兩張圖片做了個selector,使用ImageView的src或background使用selector點選時,總沒出現點選效果,這是為什麼呢? 一般有兩個原因一個是是否可clickable,一個就是今天要說的原因。 1、對於clickable問題解決方案:   ① 在xml中加上 android:c

動態新增ImageView 設定setPadding作用問題

imageView.setLayoutParams(new LayoutParams(12,12));  imageView.setPadding(20, 0, 20, 0); 設定ImageView的setPadding(20, 0, 20, 0); 不起作用 改為 LinearLayout.Layout

android 動態新增ImageView 設定setPadding作用

imageView = new ImageView(this);  imageView.setLayoutParams(new LayoutParams(20,20));  imageView.setPadding(20, 0, 20, 0); 設定ImageView的

CSS 中first-child和last-child作用原因

clas 第一個 元素 col 沒有 XML last 發的 n) 今天開發的時候,發現last-child不起作用,看了下原因順便給自己學習CSS選擇器,我們這裏舉個例子,如下代碼:<div><h1>title</h1> <p&g

Custom Email Attribute在客戶端作用原因

con tcl messages 原因 attribute clas nat a-z ble 原文發布時間為:2011-07-16 —— 來源於本人的百度文章 [由搬家工具導入]Custom Email Attribute在客户&#

2018年最後一天 VsCode中執行nodeJs程式碼的簡單方法 Pgsql和Mysql的對比 Tomcat的最大併發數 Spring AOP作用原因

發現2017的隨筆總結依舊適用,想堅持每天寫點東西分享,但感覺每天能原創分享的內容真的不多,尤其是要把自己想分享的內容寫清楚也需要額外花費很多的時間,這讓本來平時就工作比較忙的自己疲於應付,於是乎就轉載自己看到的一些好的文章分享,甚至有些文章自己都沒完全看完就發,湊合著完成了任務,但自己的成就感很低。因此我不

@media screen and 作用原因彙總。(轉載)

@media screen and 不起作用原因彙總。 首先確認是不是css本身的問題,而不是媒體查詢沒有生效;例如 div{display:flex;}/*那麼div所有的display效果都將無法生效*/   第一種錯誤:格式書寫錯誤and後面必須有空格例如下面程式碼;

動態生成一個textview,設定padding作用的解決辦法。

今天在動態寫佈局的時候,動態new了一個TextView,然後給其設定padding不起作用。 TextView tv = new TextView(mContext); LinearLayout.

getLocationOnScreen作用原因

要在視窗獲得焦點以後再去獲取控制元件在螢幕上的絕對座標,在onCreate或者onResume函式裡使用,均得不到實際座標。   解決方法   <TextView android:layout_width="wrap_content" and

@Transactional事務作用原因補充

今天,使用@Transactional,但是事務卻不起作用,配置確定配置成功,在網上查詢資料,在每個每個原因都試了之後仍然無效,最終發現,原來他們都漏了一個原因,而我正好是這個原因。 因為spring

Spring事務作用原因

首先宣告: Checked異常繼承java.lang.Exception類。Unchecked異常繼承自java.lang.RuntimeException類。 而,Spring的事務實現採用基於AOP的攔截器來實現,如果沒有在事務配置的時候註明回滾的checked exception, 那麼只有在發生了un

JVM記憶體設定,各個引數含義和設定作用問題

這兩天才來公司,遇到很棘手的問題,把公司專案下載下來後無法執行,報錯記憶體溢位問題,然後網上一大堆問題的答案,按照網上的答案解決了tomcat:java.lang.OutOfMemoryError: PermGen space問題,但是後面還有tomcat:java.lan

Springboot整合Security設定defaultSuccessUrl()作用問題

一直做移動端,想學一下Web,然後選擇了Springboot! 這2天學習如何使用Security,遇到了一個坑,坑了我2天,跟題目一樣,defaultSuccessUrl()無論怎麼設定都不起作用,登入成功後都會跳轉到"/",如果沒有“/”路由就會提示404找不到路徑。

mysql 關聯查詢 索引作用原因記錄

業務邏輯如下:查詢某篇文章的評論列表,且列出評論人及被評論人的暱稱、頭像。 先看一下表結構 評論表: 評論表的索引: 使用者表: 使用者表的索引: 查詢語句如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

edittext設定maxlength作用

xml中Edittext設定了maxlength="3",結果不起作用,後面搜尋資料發現edittext的inputy為number的時候,maxlength屬性無效,所以需要在addTextChangedListene

onchange監聽input值變化及input隱藏後change事件觸發的原因與解決方法(設定readonly後onchange作用的解決方案)

轉自:https://www.cnblogs.com/white0710/p/7338456.html 1. onchange事件監聽input值變化的使用方法: <input id="test"></input> $("input"

關於ImageView設定GONE,作用

專案中用到ImageView..setVisibility(View.GONE); 但是實際上並沒有隱藏掉,找了幾個小時,最後找到原因。 原因在於: ImageView 設定動畫以後,沒有clearAnimation。導致無法隱藏

導致spring事務配置作用的一種原因

red something 事務配置 nbsp oid -s color con bsp @Component public class AnalyticsApplication { @Autowired private InitializationAc

vue雙向綁定時添加.sync作用原因

component 2.0 雙向 例子 不同 版本 name 但是 vue <my-component v-bind:my-name.sync="name" v-bind:my-age.sync="age"></my-component> 以上代碼是

Safari瀏覽器對設定的高度作用,解決方案

發現 文字 one 底部對齊 設定 pan select標簽 pro prop 1、在做瀏覽器兼容的時候,發現select標簽在safari蘋果瀏覽器中的高度永遠都是默認的,這時候解決的辦法是加上line-height屬性就可以設置;2、但加上line-height屬性可以