zoukankan      html  css  js  c++  java
  • [Android]Button按下后修改背景图

    Button按下后修改背景图

    错误做法:
    为Button添加OnTouch事件监听,根据ACTION_UP和ACTION_DOWN动作来修改Button的背景图

    错误原因:
    从理论上讲,按钮按下修改背景色是一个UI逻辑,而非一个业务逻辑,OnTouch事件必然是写在Activity内,即MVC的
    Control中,Control中就用来处理业务逻辑,而比应该引入UI逻辑,否则将会导致代码难以维护。


    个人认为应该使用Selector实现此效果:

    基本步骤:

    1.在res/drawable下创建xml定义所需的效果

    2.在页面布局文件中为按钮添加selector


    创建selector:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- pressed -->
        <item android:state_pressed="true" 
            android:drawable="@drawable/btn_down"/> 
             
        <!-- focused -->
        <item android:state_focused="true" 
            android:drawable="@drawable/btn_default"/> 
            
        <!-- 默认时的背景图片-->
        <item android:drawable="@drawable/btn_default" />
    </selector>
    btn_selected.xml

    引入selector:

    android:background="@drawable/btn_default"

    <Button android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/btn_default"
            android:text="Button"/>
    main_activty.xml

    这样就可以将UI逻辑和业务逻辑分开,使得Activity中的代码更清晰

    人生就是一局不能Again的DOTA
  • 相关阅读:
    【转】Quartz企业作业调度配置参考
    [转]quartz中参数misfireThreshold的详解
    【转】MFC下拉框使用方法
    MFC中使用tinyxml
    【转】MYSQL中复制表结构的几种方法
    C++错误:重定义 不同的存储类
    【转】vbsedit提示“无法创建空文档”解决办法
    wordbreak和wordwrap
    css字体font
    js和jquery书籍
  • 原文地址:https://www.cnblogs.com/hellenism/p/3614888.html
Copyright © 2011-2022 走看看