让按钮有按下效果
这个其实很简单,首先,准备两张按钮的图片,分别是正常状态和按下状态,我就举 btn_normal.png btn_press.png 为例子,通过下面的XML就实现了不同状态下按钮的效果。调用时,只要在 android:background=”@drawable/btn” 就好了,其中btn就是下面的btn.xml 文件,放在drawable文件夹下面。
<?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/btn_normal" />
<item
android:state_pressed="true"
android:drawable="@drawable/btn_press" />
<item
android:drawable="@drawable/btn_normal" />
</selector>
自定义button的实现:未选中/按下/选中效果
package com.test.TestButton;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class TestButton extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Integer[] mButtonState = { R.drawable.defaultbutton,
R.drawable.focusedpressed, R.drawable.pressed };
Button mButton = (Button) findViewById(R.id.button);
MyButton myButton = new MyButton(this);
mButton.setBackgroundDrawable(myButton.setbg(mButtonState));
}
class MyButton extends View {
public MyButton(Context context) {
super(context);
}
//以下这个方法也可以把你的图片数组传过来,以StateListDrawable来设置图片状态,来表现button的各中状态。未选中,按下,选中效果。
public StateListDrawable setbg(Integer[] mImageIds) {
StateListDrawable bg = new StateListDrawable();
Drawable normal = this.getResources().getDrawable(mImageIds[0]);
Drawable selected = this.getResources().getDrawable(mImageIds[1]);
Drawable pressed = this.getResources().getDrawable(mImageIds[2]);
bg.addState(View.PRESSED_ENABLED_STATE_SET, pressed);
bg.addState(View.ENABLED_FOCUSED_STATE_SET, selected);
bg.addState(View.ENABLED_STATE_SET, normal);
bg.addState(View.FOCUSED_STATE_SET, selected);
bg.addState(View.EMPTY_STATE_SET, normal);
return bg;
}
}
}
分享到:
相关推荐
android用户界面之按钮(Button)教程实例汇 android用户界面之ProgressBar教程实例汇总 android用户界面之WebView教程实例汇总 android用户界面之GridView教程实例汇总 android用户界面之SurfaceView教程实例汇总 ...
NULL 博文链接:https://sarin.iteye.com/blog/1601316
本文讲述了Android开发笔记之Intent初级学习教程。分享给大家供大家参考,具体如下: 项目创建步骤: New Android Project-> Project name:Intent Build Target:Android 2.2 Application name:IntentDemo Package ...
按钮插件(Button)学习笔记: 按钮插件 样式文件: :ballot_box_with_check: LESS版本:源文件buttons.less :ballot_box_with_check: 点击按钮时,按钮文字变为“正在加载…”,一旦加载完之后又变回“获取数据”...
《Android应用开发I》实验指导书 计算机科学及技术系 目 录 实验一 :第一个应用程序 3 实验二 :基本控件 1 实验三 :高级控件 4 实验四 :菜单和对话框 7 实验五 :数据存储 8 实验六 :后台处理及获取网络数据 9 ...
对话框通知是一种可以与用户进行交互的通知形式,会使当前的活动失焦。 AlertDialog(警告对话框...Positive button:确认按钮。 Negative button:取消按钮。 Neutral button:既不是确认也不是取消的按钮。 Button btn
import android.widget.Button; import android.widget.Spinner; import android.widget.AdapterView.OnItemSelectedListener; public class AddressSelectorDialog extends BaseDialog { /**省类型*/ private ...
解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button, Android会分发事件到Button上,来响应你的操作。 如果此时需要...
文章目录Android 基本控件文本框 TextView基本属性其他属性编辑框 EditText普通按钮 Button图片按钮ImageButton单选按钮 RadioButton复选按钮 CheckBox图像视图 ImageView使用私有对象响应按钮点击题目笔记 ...
这个图搜索按钮看起来马马虎虎,但是这个搜索框真是有失我在美工MM心中的水准啊,这是因为我们把EditText和Button都的宽度都设置成按自身内容长度自适应,所以这一篇我们就来润润色,修一修这个布局。 Android在布局...
如果你对Web编程很熟,VCL Style就是delphi版的css,想像一下只要换一个style,所有的按钮菜单表格都换了新的颜色和风格,十分酷。XE2中自带了预定义的几种Style,用户可以添加新的并且和其他人分享。 2. 64Bit ...