通过代码实现button的点击效果
来源:互联网 发布:把app软件绿色版 编辑:程序博客网 时间:2024/05/16 17:36
1. 自定义状态效果可以通过代码实现,也可以通过xml定义style实现。
2. 下面先介绍代码实现,通过StateListDrawable定义Button背景。
3. 由于View类中PRESSED_ENABLED_STATE_SET值不是公共常量,所以通过继承来访问了。
特注:其他控件的效果,比如ImageView,也可以通过这种方法实现,但是由于ImageView默认是没焦点,不可点击的,需要自己更改(需要点击就设置android:clickable="true" , 需要能够选中就设置android:focusable="true" )。
java 代码:
01package com.test.TestButton;02 03import android.app.Activity;04import android.content.Context;05import android.graphics.drawable.Drawable;06import android.graphics.drawable.StateListDrawable;07import android.os.Bundle;08import android.view.View;09import android.widget.Button;10 11public class TestButton extends Activity {12 @Override13 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>
- 通过代码实现button的点击效果
- 通过UIView来模拟 实现 Button的点击效果
- Android linearlayout实现button的点击效果
- iOS -- 通过runtime向Button的点击方法里传递参数实现单选效果
- button代码实现点击
- android Button按钮实现点击效果代码附带demo下载
- Android实现Button点击效果
- android button 点击效果实现
- IOS-通过StortBoard设置Button点击效果
- button 点击的涟漪效果
- textview添加selector实现button的点击效果
- 不用selector实现button的简单点击效果
- Android 实现button点击效果的两种方法
- 通过CSS让button标签实现A标签的效果
- 用TextView实现button点击效果
- button的一些使用小常识(点击效果,button圆角,边框线的实现)
- android selector 背景选择器的使用, button (未点击,点击,选中保持状态)效果实现
- android button 按下效果的代码,xml的实现
- joomla 301跳转 不带www跳转带www的域名
- Log4j
- javascript 静态对象和构造函数的使用和公私问题
- Fatal error: Call to undefined function: get_headers() in /var/www/html/t.php on line 5
- JS/css代码在IE和Firefox间的区别
- 通过代码实现button的点击效果
- 对我的生活吐吐槽
- Ibatis使用事务
- linux安装git
- std::bitset
- Struts + Spring + Hibernate集成
- 阻止IE弹出“在此页上的 ActiveX 控件和本页上的其他部份的交互可能不安全。你想允许这种交互吗?”对话框
- 计算机图形学到底讲了什么
- Task在TaskTracker上执行环境的准备