Android - ImageButton单击切换按钮图片效果的实现
在Android中有一个ImageButton的View,跟Button按钮的区别是可以在Imagebutton上加载一个图片。
从ImageButton这个字面意思上来看,它是一个图片按钮,那么我们就可以使用它做一个我们想要的图片按钮了,但是我们在实际使用的过程当中,就会发现该按钮的使用并没有想像中的那么简单,需要再增加一些代码或再配置XML才能实现图片按钮按下的效果,个人感觉有点麻烦,不知道google为什么这么做?
我们来看一下如何实现
实现图片按钮按下的效果有两种方式可以实现:一是增加代码,二配置XML。
一、在java中为图片按钮增加触摸监听的函数来实现图片切换,代码如下:
[java] view plain copy
ImageButton btn = (ImageButton)findViewById(R.id.imageButton1);
btn.setOnTouchListener(new View.OnTouchListener(){
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
//重新设置按下时的背景图片
((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn_pressed));
}else if(event.getAction() == MotionEvent.ACTION_UP){
//再修改为抬起时的正常图片
((ImageButton)v).setImageDrawable(getResources().getDrawable(R.drawable.android_btn));
}
return false;
}
});
代码比较简单,就是当图片按下时,修改按钮的背景图片,当抬起时再修改为正常的图片显示。
二、通过给按钮配置XML文件来实现图片按钮的背景切换效果,方法如下:
1) 在Layout下增加一个image_btn_press.xml文件,内容如下:
[html] view plain copy
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@drawable/android_btn" />
<item android:state_focused="true" android:drawable="@drawable/android_btn" />
<item android:state_pressed="true" android:drawable="@drawable/android_btn_pressed" />
</selector>
在这个文件中可以设置按钮图片的正常时的图片、具有焦点时的图片和按下时的图片。在本例中将按钮的正常图片和焦点图片设置成同样的效果了。
或者你也可以将state_focused的整个属性行删除。
另外,该XML配置文件不一定要存放在layout的目录下,您也可以存放在drawable的目录下。
2) 在main.xml中设置图片按钮的属性,装上面的xml文件增加到图片按钮中,内容如下:
[html] view plain copy
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@layout/image_btn_press" />
在ImageButtonk中指定background的属性值:@layout/image_btn_press,其中image_btn_press就是上面为该图片铵钮创建的XML配置文件,文件名不要写错了。同时,你也可以将image_btn_press.xml文件放到drawable的目录下,此时,就要将它的属性值修改为:@drawable/image_btn_press即可,也就是说指定它的XML文件的正确路经就行了。
另外,需要特别注意的是:在ImageButton中,如果使用XML配置文件来设置图片的效果的话,就不要再指定它的android:src=""属性值了,否则图片的按下效果就出不来了。
这两种方法各有各的好处,在实际运用过种当种可以根据自己的需要进行选择。
附上面实例的源代码下载:http://download.csdn.net/detail/ztp800201/4106649
该源代码分别使用了两种的方法实现了图片按钮的效果。其中上面的图片按钮是用代码实现的,下面的图片是用XML实现的。
分享到:
相关推荐
以上就是Android中`ImageButton`换图片的基本方法,通过合理使用`selector`和监听器,我们可以轻松实现按钮按下和弹起时的图片切换效果,提升用户交互体验。如果你有`test_lzy`这个压缩包文件,里面可能包含了一些...
在Android开发中,`ImageButton`是一个非常常用的组件,它继承自`ImageView`,并增加了点击事件处理的功能,使得我们可以将图片作为按钮使用。本篇主要探讨`ImageButton`的使用、特性以及与源码相关的知识。 首先,...
•Android---UI篇---ImageButton(带图标的按钮) • •Android---UI篇---RadioButton(单选按钮) • •Android---UI篇---CheckBox(多选按钮) • •Android---UI篇---ListView之SampleAdapter(列表)---1 • •...
在Android开发中,`ImageButton`是一个非常常用的控件,它继承自`Button`,但主要用来显示图像,常用于实现点击按钮时改变图像的效果,比如开关按钮、选择按钮等。本教程将深入探讨如何在`ImageButton`中实现图片的...
`ImageButton`在Android中的主要特点是,它显示的图标可以被点击,并且可以有选择地添加背景状态改变的效果,比如按下、聚焦等状态下的样式变化。这使得它在UI设计中非常实用,常用于创建导航栏按钮、操作项或者开关...
在Android开发中,自定义控件是...这个"DemoCustomView-ImageButton"项目提供了一个学习自定义控件的良好起点,通过实践这些知识点,开发者能够掌握自定义Android组件的基本技巧,从而实现更复杂和富有创意的用户界面。
Android ImageButton 背景图片的切换是一个常见的交互设计,旨在实现按钮的状态变化。下面我们将详细介绍如何实现 ImageButton 背景图片的切换,并在不同状态实现不同的功能。 了解 ImageButton ImageButton 是 ...
在android中有一个ImageButton的View,跟Button按钮的区别是可以在Imagebutton上加载一个图片。 从ImageButton这个字面意思上...该实际代码展示图片按钮按下时切换图片效果的两种不同实现方式的源代码。欢迎下载使用。
在本教程中,我们将探讨如何利用GDI+编程技术来实现一个自定义的“imagebutton”控件。GDI+是.NET Framework中的图形设备接口,提供了一套丰富的绘图功能,可以用来绘制图像、文字、形状等。 首先,我们需要创建一...
本文将详细讲解如何在Android中实现一个能够跟踪其单击状态的图片按钮。 首先,我们来理解Android中的图片按钮(ImageButton)。它是Button的一个子类,主要区别在于它默认显示的是图片而不是文本。为了实现跟踪...
在这个压缩包文件“ImageButton按下切换图片.rar”中,我们很显然是要探讨如何在用户按下`ImageButton`时切换其显示的图片,以实现更具反馈感的用户界面。 `ImageButton`的基本使用: 1. 在布局文件中声明`...
如果需要更复杂的交互效果,可以继承 `ImageButton` 并重写其 `onTouchEvent` 方法来自定义触摸行为,或者使用第三方库如 `androidx.appcompat.widget.AppCompatImageButton` 来获取 Material Design 风格的动画...
这个"Android ImageButton图片按钮Demo源码.rar"应该包含了一个完整的示例项目,用于演示如何在Android应用中使用`ImageButton`。 首先,我们来详细了解一下`ImageButton`的基本用法。`ImageButton`主要通过设置其`...
这个`Android应用源码之(ImageButton图片按钮)`的压缩包提供了有关如何在Android应用中有效使用`ImageButton`的实例。下面我们将深入探讨`ImageButton`的相关知识点,并结合源码进行详细讲解。 1. **`ImageButton`...
这个压缩包文件"安卓Android源码——(ImageButton图片按钮).rar"很可能是包含了一个示例项目,展示了如何在Android应用中使用`ImageButton`来实现图片按钮的功能。下面我们将深入探讨`ImageButton`的相关知识点。 1...
在Android开发中,`ImageButton`是一个非常重要的视图组件,它是`Button`的子类,但与普通`Button`的区别在于它可以显示图像,这使得它成为创建图标化操作按钮的理想选择。`ImageButton`的设计旨在提供一种更加直观...
在Windows Forms应用开发中,创建具有视觉吸引力的用户...通过继承`Button`并重写`OnPaint`事件,我们可以在C#的Windows Forms环境中创建这样一个控件,实现按钮图像的自动拉伸,从而提高用户界面的美观度和用户体验。
以上就是关于`android 具有背景图片的按钮 ImageButton的焦点事件以及事件处理`的相关知识。通过理解并熟练掌握这些技巧,你能够创建出更富交互性的Android应用程序,提升用户体验。在实际开发中,还需要注意性能...
在Android开发中,按钮(Button)是用户交互的重要元素,而`ImageButton`是按钮的一种特殊形式,主要用于显示图像。在本教程中,我们将探讨如何在用户点击`ImageButton`时动态改变其背景图片,这个功能可以通过使用`...