Android ViewGroup点击效果(背景色)

在开发Android应用的界面时,我们必然会用到本文ViewGroup,尤其是FrameLayout,LinearLayout,RelativeLayout等ViewGroup的子类; 在一些情况下,我们需要设置这些ViewGroup的点击效果,使用户获得更好的体验。下面介绍两种实现方法:

方法一:使用图片资源

通过为ViewGroup设置不同的图片图片资源,是最方便的实现方法,我们只需要设计两张图片,一张为非点击效果,另一张为点击时效果,然后为ViewGroup设置 

background即可:

1. 定义ViewGroup的background所需的drawbale资源:selector_viewgroup_item_btn_bg.xml

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

    <item android:drawable="@drawable/btn_bg_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn_bg_unpressed"/>

</selector>

该文件的定义很简单,就是规定了一个点击效果图片和一个正常情况下的图片,通过state进行区分。

2.  定义布局文件:main_activity.xml

<RelativeLayout
        android:id="@+id/my_collect_layout_parent"
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:clickable="true"
        android:background="@drawable/selector_viewgroup_item_btn_bg" >

        <ImageView
            android:id="@+id/img1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="20dp"
            android:src="@drawable/more_my_collect_img" />

        <TextView
            android:id="@+id/my_collect_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="12dp"
            android:layout_toRightOf="@id/img1"
            android:gravity="center"
            android:text="我的收藏"
            android:textColor="#5d5d5d"
            android:textSize="15sp" />
    </RelativeLayout>

在布局文件中,我们有两处处需要 注意:

  ·设置RelativeLayout的background属性,指向之前定义的drawable资源selector_viewgroup_item_btn_bg.xml

  ·要为RelativeLayout设置clickable 属性: android:clickable="true"

效果图:

方法二: 使用Color颜色

1. 在value目录下定义drawables.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
	<!-- 用于RelativeLayout点击 -->
	<drawable name="viewgroup_item_bg_unpress">#ffffff</drawable>
	<drawable name="viewgroup_item_bg_pressed">#f2f2f2</drawable>
</resources>

注: 此处我们需要注意,item的开头我们使用的是<drawable>而不是<color>.

2. 定义ViewGroup的background所需的drawbale资源:selector_viewgroup_bg.xml

<?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/viewgroup_item_bg_pressed"/>
    <item android:drawable="@drawable/viewgroup_item_bg_unpress" android:state_focused="false" android:state_pressed="false"/>
</selector>

3. 定义布局文件:main_activity.xml

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:clickable="true"
        android:background="@drawable/selector_viewgroup_bg" >

        <ImageView
            android:id="@+id/img1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="20dp"
            android:src="@drawable/more_my_collect_img" />

        <TextView
            android:id="@+id/my_collect_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="12dp"
            android:layout_toRightOf="@id/img1"
            android:gravity="center"
            android:text="我的收藏"
            android:textColor="#5d5d5d"
            android:textSize="15sp" />
    </RelativeLayout>

在布局文件中,我们有两处处需要 注意:

  ·设置RelativeLayout的background属性,指向之前定义的drawable资源selector_viewgroup_bg.xml

  ·要为RelativeLayout设置clickable 属性: android:clickable="true"

效果图:

通过上述方法,即可实现最简单的ViewGroup点击效果。

源代码下载地址(免费):http://download.csdn.net/detail/zuiwuyuan/8401989

时间: 2024-10-26 05:49:00

Android ViewGroup点击效果(背景色)的相关文章

Android Button点击效果(按钮背景变色、文字变色)

一. 说明 Android Button的使用过程中,我们会需要为Button添加点击效果,不仅仅按钮的背景色需要变化,而且有时,我们连文字的颜色都希望变化,我们可以使用StateListDrawable资源可以实现. 二. 实现按钮点击的变化 2.1 实现效果: 2.2 我们首先需要定义按钮的背景的资源文件,我们使用图片资源来实现点击变化 selector_btn_click_bg.xml <?xml version="1.0" encoding="utf-8&quo

Android TextView点击效果

在Android开发中,我们有时候需要单独的点击某一段文本,如图所示: 如上图,我们要求点击新用户注册这个TextView,为了有更好的用户体验,我们肯定要设置该TextView的点击效果.下面介绍如何实现: 1. 在res目录下,单独建立color目录,用于存放颜色点击效果的资源文件,在该目录下,新建文本点击效果的文件: selector_text_press_color.xml <?xml version="1.0" encoding="utf-8"?&g

Android按钮点击效果的实现(selector)

步骤 1 放置两张图片ok1和ok2到drawable-mdpi文件夹中 2 在layout文件夹下建立xml文件,如下 <?xml version="1.0" encoding="utf-8"?> <!-- "@drawable/ok1"表示未点击按钮时的图片 --> <!-- "@drawable/ok2"表示点击按钮时的图片 --> <selector xmlns:android

Android如何自定义按钮效果_Android

安卓原生的按钮是多么丑,效果是多么单调,大家也是有目共睹的. 要做一个APP少不了使用按钮,一个好看的按钮少不了好看的效果和外表,这次主要跟大家讲讲如何用drawable的xml文件弄一些好看的自定义样式. 首先是外表 在APP中四四方方,灰色底黑色字的按钮是很难看的,我们希望看到的是圆角,彩色,白字(根据你的个人审美也可以是其他样式). 首先是在layout里新建一个按钮 ,然后在drawable文件夹里新建一个drawable resource file ,不妨起名为shape ,加一个se

Android实现点击Button产生水波纹效果

先上图,看看接下来我要向大家介绍的是个什么东西,如下图: 接下来要介绍的就是如何实现上述图中的波纹效果,这种效果如果大家没有体验过的话,可以看看百度手机卫士或者360手机卫士,里面的按钮点击效果都是这样的,另外Android 5.0以上的版本也出现了这种效果.不多说,下面聊聊具体的怎么实现. 首先大家看到的是三个button,水波纹的出现给我们的错觉是直接将波纹绘制在button上面的,但是这样能做到吗?首先button自己有background和src,如果把半透明的水波纹当作backgrou

Android 各种按钮点击效果以及兼容性问题总结

概述  点击效果在安卓的原生开发中无处不见,主要是为了对用户的操作在视觉上进行反馈.这个反馈很平常也很重要.而安卓5.0开始引入的全新设计Material Design真的超赞!特别是触摸反馈的波纹效果,可惜这个波纹效果只支持5.0及以上的版本,应该是出于性能的考虑!坑爹啊!  但是既然5.0以上可以用酷炫的点击效果,那就不能浪费要用起来,这篇博客前面先讲下Button和ImageView点击效果的基本实现,然后再讲下我个人如何处理兼容Material 设计效果 按钮点击效果基本实现 Butto

Android之Button自定义点击效果

        我们在界面上经常会用到button按钮,但通常button点击后看不到点击的效果,如果用户连续点击了两次,就会报NAR错误,这样交互性就比较差了.如果我们自定义了button点击效果,比如我们点击了button能让我们看到我们确实点击了button按钮,这样就会有效的避免重复点击了.               自定义点击效果有两种方式,一种是在xml中定义,另一种是在代码中定义.              首先看一下如何在xml中定义:              在drawab

Android自定义button点击效果的两种方式_Android

我们在界面上经常会用到button按钮,但通常button点击后看不到点击的效果,如果用户连续点击了两次,就会报NAR错误,这样交互性就比较差了.如果我们自定义了button点击效果,比如我们点击了button能让我们看到我们确实点击了button按钮,这样就会有效的避免重复点击了. 自定义点击效果有两种方式,一种是在xml中定义,另一种是在代码中定义. 首先看一下如何在xml中定义: 在drawable下新建selector.xml文件:          <?xml version="

Android RichText 让Textview轻松的支持富文本(图像ImageSpan、点击效果等等类似QQ微信聊天)_Android

AndroidRichText帮助实现像QQ,微信一样的,一个TextView里既有文字又有表情又有图片的效果,采用插件化的框架,代码简单,可拓展性强. 基础框架包只有四个java文件, RichTextWrapper :TextView的包裹类,实现支持富文本,通过new RichTextWrapper(TextView v)来构造. RTMovementMethod: 继承自Android原生的LinkMovementMethod,重写onTouchEvent方法,优化了ClickSpan(