点击更换背景颜色android_android点击更换背景颜色 - CSDN
  • 在布局中添加android:background="@drawable/collect_menu_bg_sub" collect_menu_bg_sub.xml collject_menu_bg_normal_sub.xml android:width="0.5dp" andr

    在布局中添加android:background="@drawable/collect_menu_bg_sub"


    collect_menu_bg_sub.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/collject_menu_bg_normal_sub" android:state_pressed="false" />
        <item android:drawable="@drawable/collect_menu_focused_sub" android:state_pressed="true" />
    </selector>
    

    collject_menu_bg_normal_sub.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="@android:color/white" />
        <stroke
            android:width="0.5dp"
            android:color="@color/divider" />
        <corners android:topLeftRadius="5dp"
            android:bottomLeftRadius="5dp"
            android:bottomRightRadius="5dp"
            android:topRightRadius="5dp"/>
    </shape>

    collect_menu_focused_sub.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="@color/appcolor" />
        <stroke
            android:width="0.5dp"
            android:color="@color/divider" />
        <corners android:topLeftRadius="5dp"
            android:bottomLeftRadius="5dp"
            android:bottomRightRadius="5dp"
            android:topRightRadius="5dp"/>
    </shape>


    展开全文
  • 思路:声明一个变量index来记录当前的行,然后设置Item的点击监听,点击的时候更新index为当前点击的Item下标,然后刷新listView就好 mClassAdapter.notifyDataSetInvalidated(); 通过adapter来刷新listview ...

    效果图:
    这里写图片描述

    思路:声明一个变量index来记录当前的行,然后设置Item的点击监听,点击的时候更新index为当前点击的Item下标,然后刷新listView就好

    mClassAdapter.notifyDataSetInvalidated();
    通过adapter来刷新listview

    listView Item的样式 xml 代码截图:
    这里写图片描述

    java类代码,声明一个变量来记录当前点击的行,笔者这里默认是 0
    这里写图片描述

    设置listview的点击监听
    这里写图片描述

    最后设置颜色的切换,就是在adapter的 接口方法中实现
    这里写图片描述

    截图中的颜色是笔者自定义的,大家可以根据实际需求来自定义

    有什么不懂得可以留言,如果笔者会的话,会回复的。

    展开全文
  • UI设计中,按钮一般都会有多个状态,比如:聚焦、点击等,不同的状态必须显示不同的呈现形式(比如颜色、形状的改变),这样用户才能感觉到按钮被成功选中、点击了,否则用户体验就会非常差了。 本篇文章就简单...

    UI设计中,按钮一般都会有多个状态,比如:聚焦、点击等,不同的状态必须显示不同的呈现形式(比如颜色、形状的改变),这样用户才能感觉到按钮被成功选中、点击了,否则用户体验就会非常差了。


    本篇文章就简单地描述一下Android开发中,如何动态改变Button状态切换时的背景。


    Android的UI设计中,默认情况下,系统会为Button的点击实现一个默认的背景切换。


    例如下面这样的一个Button:


    1
    2
    3
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />


    用户在点击Button的时候,会有一个蓝色外框显示出来,表明Button被点击了。如图所示:


    211817938.png


    但是,如果想为Button添加自定义的图片背景,如:


    1
    android:background="@drawable/upload"


    那么,当你点击Button的时候会发现,Button啥反应都没有,在用户点击的时候Button的背景没有任何变化,用户无法知道到底点击成功了没有,所以,这不是一个好的用户体验。


    当然,这种情况可以考虑使用ImageButton,如:


    1
    2
    3
    4
    <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/upload"/>


    ImageButton会将src所指的图片缩小放入Button的方框内中央显示,Button点击前后的显示效果如图所示:

    204544654.png

    上面是采用系统默认的Button点击效果,那么,如果期望自己定义Button的点击效果,该如何实现呢?下面,我将介绍两种在Button被点击时改变背景的方式,一种是采用多张背景图片切换的方式,另一种是采用shape来定义Button状态切换的背景显示。


    1.  多张背景图片切换


    首先,为Button准备两张背景图片,一张是Button未点击时显示的图片,另一张是Button被点击时显示的图片,如图所示:


    204629539.png

    然后,在工程的res/drawable目录下创建一个 xml 文件,这里命名为:button_selector.xml


    内容如下:


    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?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/up_pressed"/>
        <item  
            android:state_pressed="false"
            android:drawable="@drawable/up"/> 
    </selector>


    说明:这里的selector标签就相当与Button状态的选择器,每一个item子项代表着Button的一种状态,这里我只选取了两种状态做示例,一种是Button被点击,另一种是Button未被点击。全部的Button状态可以参考Google Android Development相关网页:StateListDrawable


    然后,在Button的标签中,把 background 属性的值改为 button_selector 即可:


    1
    android:background="@drawable/button_selector"


    可以运行程序试试,当点击Button后,是不是Button的背景从左图变化成为右图了?


    这种方法是比较直观简单的方法,在实际的工程中也大量使用,但也有一个缺陷,必须为所有的Button准备多张背景图片,为每一个状态准备一张,加大了UI设计的工作量,也加大了程序的大小。


    2. 通过shape来自定义Button的UI显示


    首先,定义两个xml文件,分别为shape_normal.xml ,shape_pressed.xml


    文件中,定义shape的属性,shape的原理参考Google Android官方文档:


    (1)shape_normal.xml


    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <gradient
            android:startColor="#808080"
            android:endColor="#808080"
            android:angle="-90"/>
    </shape>


    (2) shape_pressed.xml


    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <gradient
            android:startColor="#FF7F00"
            android:endColor="#EE7600"
            android:angle="-90"/>
    </shape>


    然后,依然定义一个 button_selector.xml文件,只不过该selector的android:drawable所指的内容,由图片改为shape文件。


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?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/shape_pressed"/>
        <item  
            android:state_pressed="false"
            android:drawable="@drawable/shape_normal"/>
                                                                                                                                                              
    </selector>


    然后,将所需的Button的background依然指向该selector文件,即可实现自定义Button点击的背景切换效果.


    采用这种方式的Button点击前后的效果如图所示:


    205418353.png


    shape可以定义的内容很丰富,包括圆角的设置,线条的粗细等等,这里不一一演示,可以自己修改后测试效果。


    ImageButton也可以采用这种方法来自定义Button点击的背景颜色切换效果,不过要注意为ImageButton添加一个android:padding属性,使得src的图片与Button的边界有一定的距离,这样才能动态改变背景,因为ImageButton能改变的颜色只是src图片以外的背景区域,图片本身的颜色是不会变的。


    1
    2
    3
    4
    5
    6
    7
    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/upload_pressed"
        android:padding="5dp"
        android:layout_centerVertical="true"
        android:background="@drawable/button_selector"/>


    效果如图:

    205507104.png

       这篇文章就写到这儿了,本文主要描述了如何为Button的点击动态改变背景,主要通过selector来实现,而具体的呈现形式可以通过多个图片背景切换,或者通过Shape标签来定义。文中有不清楚的地方欢迎留言讨论或者来信lujun.hust@gmail.com交流,或者关注我的新浪微博 @卢_俊 获取最新的文章和资讯。


    根据以上代码,我实现了自己想要的效果:


                               





    代码如下:

    button_normal.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
        <!-- 默认背景颜色 -->
        <solid android:color="#87CEFA" />
        <stroke
            android:width="0.5dp"
            android:color="#0082bd" />
        <corners android:radius="30dp" />
    </shape>


    button_pressed.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
        <!-- 点击后背景颜色 -->
        <solid android:color="#0082bd" />
        <stroke
            android:width="0.5dp"
            android:color="#0082bd" />
        <corners android:radius="30dp" />
    </shape>



    button_selector.xml

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


        <!-- 默认背景 -->
        <item android:drawable="@drawable/button_normal"
            android:state_pressed="false"><!-- need & do not work without this attribute -->
        </item>
        <!-- 点击背景 -->
        <item android:drawable="@drawable/button_pressed" android:state_pressed="true"></item>


    </selector>


    最后在Button控件中:android:background="@drawable/button_selector"




    展开全文
  • 网上搜了很多的方法,使用selector选择器是无法实现点击之后更换背景,并保持颜色不变的功能,因为点击完之后,总会显示默认的图片,所以这个方案被否定了。也想多了使用第2个方案:因为是一组textview,点击其中一...

        网上搜了很多的方法,使用selector选择器是无法实现点击之后更换背景,并保持颜色不变的功能,因为点击完之后,总会显示默认的图片,所以这个方案被否定了。也想多了使用第2个方案:因为是一组textview,点击其中一个背景变为打钩的图片,其他3个保持默认不变,所以想到了android 单选框,但最后考虑之后自定义旁边的单选按钮势必会增加更多的代码,所以也否定了,想要实现如下功能:


         没办法,最后只能通过监听点击事件,来更换4个textview的背景颜色,原理其实也是非常简单,就是当点击其中一个时候,其他的设置为默认,当点击第二个的时候,重置另外三个的背景,java代码如下:

    	currencypairs.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    				currencypairs.setBackgroundResource(R.drawable.grayright);
    				openpositionprice
    						.setBackgroundResource(R.drawable.grayrightmoren);
    				floatingprofit.setBackgroundResource(R.drawable.grayrightmoren);
    				dealtime.setBackgroundResource(R.drawable.grayrightmoren);
    
    			}
    		});

           虽然上述的解决的方法有点过于曲折,没有想到更加优雅的解决方式,有大神可以指出来更好的解决方案,搜了很长时间,也没看到有人解决了。
    展开全文
  • 上周五工作时遇到了一个需求,要求顶部有三个单选按钮,按下其中一个按钮时,该按钮的背景颜色及文本颜色均发生改变。 首先考虑用了RadioGroup,控件里面设置了三个RadioButton,水平排列。 android:id="@+id/...

    上周五工作时遇到了一个需求,要求顶部有三个单选按钮,按下其中一个按钮时,该按钮的背景颜色及文本颜色均发生改变。

    首先考虑用了RadioGroup,控件里面设置了三个RadioButton,水平排列。

    <RadioGroup
                android:id="@+id/radioGroup1"
                android:layout_width="150dp"
                android:layout_height="match_parent"
                android:layout_centerInParent="true"
                android:orientation="horizontal" >
    
             
            </RadioGroup>
    RadioButton其他属性的设置就暂且不提,比较简单。

    我在设计实现需求的时候,同样是考虑使用selector,这样代码会简洁直观方便。

    一开始我是这样写selector的:将文字颜色和背景颜色分开,写两个selector。

    背景颜色selector如下所示:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_checked="true" android:color="#ffffff"></item>
        <item android:state_checked="false" android:color="#3884F8"></item>
    
    </selector>
    文字颜色设置如下:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_checked="true" android:color="#3884F8"></item>
        <item android:state_checked="false" android:color="#ffffff"></item>
    
    </selector>
    然后在style.xml文件中设置:
            <item name="android:textColor">@drawable/function_item_button_text_selector</item>
            <item name="android:background">@drawable/item_button_selector</item>
    结果查看布局显示结果时报错,
    Failed to configure parser for D:\workspace\...\res\drawable\item_button_selector.xml
    Exception details are logged in Window > Show View > Error Log
    然后百思不得其解,后来百度前人的经验,知道设置背景颜色时候最好引用drawable,通过更改代码,然后就不再报错了。

    现将正确代码粘贴下来,以供日后参考复习!

    1. 在values文件夹下的strings.xml中添加代码:

        <drawable name="unchecked">#456598</drawable>
        <drawable name="checked">#ffffff</drawable>
    2. drawable文件夹下的item_button_selector.xml文件中的代码
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:drawable="@drawable/checked" android:state_checked="true"/>
        <item android:drawable="@drawable/unchecked" android:state_checked="false"/>
    
    </selector>
         function_item_button_text_color文件中的代码:
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_checked="true" android:color="#3884F8"></item>
        <item android:state_checked="false" android:color="#ffffff"></item>
    
    </selector>
    3. 在style.xml文件中对应的style中添加代码
            <item name="android:textColor">@drawable/function_item_button_text_selector</item>
            <item name="android:background">@drawable/item_button_selector</item>
    大功完成!





    展开全文
  • AndroidStudio 合理设置编辑器背景颜色能使眼镜不容易疲劳,更好的保护眼镜。 推荐颜色 颜色在这里向大家推荐豆沙绿,保护眼睛的说法虽未得到任何科学证实,但是确实看着柔和不少。下面是维基百科的介绍 豆沙...
  • android:id="@+id/btn_home" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/main_bottom_item_bg" android:drawableTop="@drawable/tab_home_bg
  • Android实现连续并排的若干个TextView单击改变背景颜色达到选项卡Tab栏切换效果》 实现的组件交互目的很简单,就是要达到类型tab选项卡的导航栏一样,当用户点击了连续并排的若干个TextView其中之一时候,要产生...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • 实现圆角按钮,点击的时候背景和字体的颜色都改变,这里的实现效果如下:原状态背景为白色,字体为蓝色,当点击的时候背景为蓝色,字体为白色。介绍两种实现方式。1、使用button。2、实现自定义TextView。 1.使用...
  • android的progressbar修改背景颜色跟进度条颜色,使用渐变的颜色来设置进度条的颜色和背景的颜色。
  • android改变背景颜色

    2020-07-30 23:32:50
    android JAVA 点击不同的按钮,可以改变界面的背景颜色
  • 一言不合就上图点击变色: 这里没有用到什么高大上的技术点,只是静下心好好想想“面向对象”,利用一点小逻辑。 我这里用的是recyclerView控件,在recyclerView的适配器里: //先声明一个int成员变量 private int ...
  • 这个功能一开始觉得已经实现了,在我的另一篇博客上有:android listview点击保持背景颜色 android listview点击保持背景颜色 后来测试人员在测试的时候,发现这样一个奇怪的问题:  当点击了listview的第0项,...
  • 方法如下: 比如现在有个button button.setBackgroundColor(Color.parseColor(“#FFFFFF”));
  • Android换肤,更换背景,白天模式夜间模式demo 实现方法:通过自定义控件,以及自定义相关样式 利用偏好设置进行保存用户的设置 实现不用重新启动activity进行换肤功能,更换背景,相关图片,以及文字的颜色设置 ...
  • 既然是做RecyclerView的item点击切换背景颜色 肯定要先创建出来 所以以上的步骤我就不在这里展示了 1.首先在drawable里 创建 selector   2.然后在RecyclerView 的子布局里 将背景颜色设置为 ...
  • 首先在res文件夹下面创建一个drawable文件夹,然后在drawable文件夹下面创建一个xml文件用来控制按钮点击和默认背景   这里我创建一个xml为btn_style.xml文件,代码如下s   version="1.0" ...
  • android点击按钮改变颜色,是很常用的,我总结了三种
  • 写数字安全密码的时候,用到了shape,画了一个白色圆点,在点击数字键盘时,改变对应圆点背景为选中色 1、shape文件   &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;...
1 2 3 4 5 ... 20
收藏数 3,289
精华内容 1,315
关键字:

点击更换背景颜色android