Android 選擇器 selector用法

設置view點擊后切換背景并且保留住選中狀態(tài)應該怎么辦?

1.在drawable下面新建文件bg_music_type

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/weeebot_background_red" android:state_pressed="true"/>
    <item android:drawable="@drawable/weeebot_background_red" android:state_selected="true"/>
    <item android:drawable="@drawable/weeebot_background" android:state_enabled="true"/>

</selector>

注意:

  • weeebot_background_red 是選中的時候的背景圖片
  • weeebot_background 是未選中的時候的背景圖片

在此處設置的是Fragment的背景,同理ImageView也需要設置

<FrameLayout
    android:id="@+id/test1"
    android:layout_width="53dp"
    android:layout_height="53dp"
    android:layout_marginEnd="30dp"
    android:clickable="true"
    android:background="@drawable/bg_music_type"
    android:onClick="onClick"
    android:focusable="true">

    <ImageView
        android:layout_width="34dp"
        android:layout_height="30.58dp"
        android:layout_gravity="center"
        android:focusable="false"
        android:clickable="false"
        android:background="@mipmap/music_laohu"/>

</FrameLayout>                       

注意一定要設置:

  • android:clickable="true"
  • android:focusable="true"

否則無效的

當然了上面的selector直接設置background即可。

然后就可以看到按鈕在被點擊的時候出現(xiàn)weeebotbackgroundred此背景的效果,不過怎么保留住這個點擊效果呢??

需要在改布局的引用java代碼里面設置這樣的一句話


@Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.test1:
                binding.test1.setSelected(true);
                break;
          }
    }

這樣就大功告成了!

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,008評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,983評論 2 59
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,325評論 0 17
  • RelativeLayout 第一類:屬性值為true可false android:layout_centerHr...
    兀兀沙彌閱讀 3,132評論 0 15
  • 挖井,必須在一個點挖的夠深才可見水,如果,我們在這里挖點沒水,換地再挖,再挖點沒水,頻繁變換地點,想要挖出...
    行動的橙z閱讀 1,230評論 0 0

友情鏈接更多精彩內(nèi)容