通过代码实现button的点击效果
2011-12-12 16:02
357 查看
1. 自定义状态效果可以通过代码实现,也可以通过xml定义style实现。
2. 下面先介绍代码实现,通过StateListDrawable定义Button背景。
3. 由于View类中PRESSED_ENABLED_STATE_SET值不是公共常量,所以通过继承来访问了。
特注:其他控件的效果,比如ImageView,也可以通过这种方法实现,但是由于ImageView默认是没焦点,不可点击的,需要自己更改(需要点击就设置android:clickable="true" , 需要能够选中就设置android:focusable="true" )。
java 代码:
main.xml
2. 下面先介绍代码实现,通过StateListDrawable定义Button背景。
3. 由于View类中PRESSED_ENABLED_STATE_SET值不是公共常量,所以通过继承来访问了。
特注:其他控件的效果,比如ImageView,也可以通过这种方法实现,但是由于ImageView默认是没焦点,不可点击的,需要自己更改(需要点击就设置android:clickable="true" , 需要能够选中就设置android:focusable="true" )。
java 代码:
01 package com.test.TestButton; 02 03 import android.app.Activity; 04 import android.content.Context; 05 import android.graphics.drawable.Drawable; 06 import android.graphics.drawable.StateListDrawable; 07 import android.os.Bundle; 08 import android.view.View; 09 import android.widget.Button; 10 11 public class TestButton extends Activity { 12 @Override 13 public void onCreate(Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.main); 16 Integer[] mButtonState = { R.drawable.defaultbutton, 17 R.drawable.focusedpressed, R.drawable.pressed }; 18 Button mButton = (Button) findViewById(R.id.button); 19 MyButton myButton = new MyButton(this); 20 mButton.setBackgroundDrawable(myButton.setbg(mButtonState)); 21 } 22 23 class MyButton extends View { 24 25 public MyButton(Context context) { 26 super(context); 27 } 28 29 // 以下这个方法也可以把你的图片数组传过来,以StateListDrawable来设置图片状态,来表现button的各中状态。未选 30 // 中,按下,选中效果。 31 public StateListDrawable setbg(Integer[] mImageIds) { 32 StateListDrawable bg = new StateListDrawable(); 33 Drawable normal = this.getResources().getDrawable(mImageIds[0]); 34 Drawable selected = this.getResources().getDrawable(mImageIds[1]); 35 Drawable pressed = this.getResources().getDrawable(mImageIds[2]); 36 bg.addState(View.PRESSED_ENABLED_STATE_SET, pressed); 37 bg.addState(View.ENABLED_FOCUSED_STATE_SET, selected); 38 bg.addState(View.ENABLED_STATE_SET, normal); 39 bg.addState(View.FOCUSED_STATE_SET, selected); 40 bg.addState(View.EMPTY_STATE_SET, normal); 41 return bg; 42 } 43 } 44 }
main.xml
01 <?xml version=”1.0″ encoding=”utf-8″?> 02 <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” 03 android:orientation=”vertical” 04 android:layout_width=”fill_parent” 05 android:layout_height=”fill_parent” 06 > 07 <Button android:id=”@+id/btn” 08 android:layout_width=”wrap_content” 09 android:layout_height=”wrap_content” 10 android:text=”@string/mybtn” 11 android:background=”@drawable/mybutton_background” /> 12 </LinearLayout>
相关文章推荐
- 通过UIView来模拟 实现 Button的点击效果
- iOS -- 通过runtime向Button的点击方法里传递参数实现单选效果
- android开发游记:通过xml配置快速实现点击热点效果和渐变动画(不用java代码)
- android Button按钮实现点击效果代码附带demo下载
- 在页面中,我们经常看到,一个button按钮,如果属标点击,就会触发一个窗口的显示,如果二次点击并可以隐藏,那么如何通过JAVA配合html来实现这一功能呢?
- 通过CSS让button标签实现A标签的效果
- Qt-QML-Button-ButtonStyle-实现鼠标滑过点击效果
- Android中的Button自定义点击效果实例代码
- 通过AJAX调用页面后台代码方法实现省级三级联动效果 (简单练习)前台
- Android中ImageButton自定义按钮的按下效果的代码实现方法,附网上2种经典解决方法。 2014-07-04 13:17 78人阅读 评论(0) 收藏
- C#怎么通过一个按钮Button,实现点击这个按钮可以打开一个文件或者文件夹?
- Android ImageButton自定义按钮的按下效果的代码实现方法
- Android ImageButton自定义按钮的按下效果的代码实现方法分享
- 基于javascript代码实现通过点击图片显示原图片
- button的一些使用小常识(点击效果,button圆角,边框线的实现)
- Android中ImageButton自定义按钮的按下效果的代码实现方法,附网上2种经典解决方法。
- 代码实现按钮点击高亮效果
- javascript实现table单元格点击展开隐藏效果(实例代码)
- Android中ImageButton自定义按钮的按下效果的代码实现方法,附网上2种经典解决方法。
- Android中ImageButton自定义按钮的按下效果的代码实现方法,附网上2种经典解决方法。