zoukankan      html  css  js  c++  java
  • android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现

              android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现

    首先看到selector的属性:
    android:state_focused
    android:state_pressed
    android:state_selected
    android:state_enabled
    它们之间的执行是 有执行顺序的写xml的时候特别要分析好执行顺序,否则达不到要实现的效果:

    现在实现效果如下:


    当点击停止按钮时,



    有点击效果,和选中效果。
    具体代码如下:
    暂停:


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


        <item android:drawable="@drawable/icon_pause_active" android:state_pressed="true"/>
        <item android:drawable="@drawable/icon_pause_active" android:state_selected="true"/>
        <item android:drawable="@drawable/icon_pause_inactive" android:state_enabled="true"/>


    </selector>

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


    <item android:state_pressed="true" android:drawable="@drawable/icon_stop_active"/>
    <item android:state_selected="true" android:drawable="@drawable/icon_stop_active"/>
    <item android:state_enabled="true" android:drawable="@drawable/icon_stop_inactive"/>

    播放:
    </selector>

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


    </selector>

    布局中:


     <ImageButton
                    android:layout_marginRight="15dp"
                    android:background="@null"
                    android:id="@+id/stop"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src=" @drawable/music_stop_style" />
                <ImageButton
                    android:id="@+id/play"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@null"
                    android:layout_marginRight="15dp"
                    android:layout_marginLeft="15dp"
                    android:src=" @drawable/music_play_style" />


                <ImageButton
                    android:layout_marginLeft="15dp"
                    android:id="@+id/pause"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@null"
                    android:src="@ drawable/music_pause_style" />


    代码中:
    public void onClick(View arg0) {
    // TODO Auto-generated method stub
    switch (arg0.getId()) {
    case R.id.stop:
    stop.setSelected(true);
    play.setSelected(false);
    pause.setSelected(false);
    break;
    case R.id.play:
    stop.setSelected(false);
    play.setSelected(true);
    pause.setSelected(false);
    break;
    case R.id.pause:
    stop.setSelected(false);
    play.setSelected(false);
    pause.setSelected(true);
    break;

         处理好即可、。
  • 相关阅读:
    linux 删除某种规则命名的文件
    adb shell 出现 error :
    android 开发,多个线程共用一个handler
    android 开发上传图片遇到返回 FileNotFoundException
    mysql 的存储过程调试软件
    输入adb shell 时 提示error: more than one device and emulator
    高德开发 android 出现 key 鉴权失败
    android 中设置HttpURLConnection 超时并判断是否超时
    LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg
    C# 如何判断数据是否为 NaN
  • 原文地址:https://www.cnblogs.com/pangblog/p/3364652.html
Copyright © 2011-2022 走看看