`
zkl_1987
  • 浏览: 243449 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android 笔记 ----- 按钮Button应用

阅读更多
让按钮有按下效果

这个其实很简单,首先,准备两张按钮的图片,分别是正常状态和按下状态,我就举 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开发资料大全

    android用户界面之按钮(Button)教程实例汇 android用户界面之ProgressBar教程实例汇总 android用户界面之WebView教程实例汇总 android用户界面之GridView教程实例汇总 android用户界面之SurfaceView教程实例汇总 ...

    Android学习笔记五:基本视图组件:Button

    NULL 博文链接:https://sarin.iteye.com/blog/1601316

    Android开发笔记之Intent初级学习教程

    本文讲述了Android开发笔记之Intent初级学习教程。分享给大家供大家参考,具体如下: 项目创建步骤: New Android Project-&gt; Project name:Intent Build Target:Android 2.2 Application name:IntentDemo Package ...

    bootstrap按钮插件(Button)使用方法解析

    按钮插件(Button)学习笔记: 按钮插件 样式文件: :ballot_box_with_check: LESS版本:源文件buttons.less :ballot_box_with_check: 点击按钮时,按钮文字变为“正在加载…”,一旦加载完之后又变回“获取数据”...

    Android应用开发I实验指导书.doc

    《Android应用开发I》实验指导书 计算机科学及技术系 目 录 实验一 :第一个应用程序 3 实验二 :基本控件 1 实验三 :高级控件 4 实验四 :菜单和对话框 7 实验五 :数据存储 8 实验六 :后台处理及获取网络数据 9 ...

    Android学习笔记之Dialog Notification

    对话框通知是一种可以与用户进行交互的通知形式,会使当前的活动失焦。 AlertDialog(警告对话框...Positive button:确认按钮。 Negative button:取消按钮。 Neutral button:既不是确认也不是取消的按钮。 Button btn

    android地址选择器

    import android.widget.Button; import android.widget.Spinner; import android.widget.AdapterView.OnItemSelectedListener; public class AddressSelectorDialog extends BaseDialog { /**省类型*/ private ...

    Android开发笔记 Handler使用总结

    解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button, Android会分发事件到Button上,来响应你的操作。 如果此时需要...

    【android编程】 第四讲-Android基本控件

    文章目录Android 基本控件文本框 TextView基本属性其他属性编辑框 EditText普通按钮 Button图片按钮ImageButton单选按钮 RadioButton复选按钮 CheckBox图像视图 ImageView使用私有对象响应按钮点击题目笔记 ...

    Android开发自学笔记(四):APP布局下

    这个图搜索按钮看起来马马虎虎,但是这个搜索框真是有失我在美工MM心中的水准啊,这是因为我们把EditText和Button都的宽度都设置成按自身内容长度自适应,所以这一篇我们就来润润色,修一修这个布局。 Android在布局...

    KeyGenDelphi (XE2注册机).

    如果你对Web编程很熟,VCL Style就是delphi版的css,想像一下只要换一个style,所有的按钮菜单表格都换了新的颜色和风格,十分酷。XE2中自带了预定义的几种Style,用户可以添加新的并且和其他人分享。 2. 64Bit ...

Global site tag (gtag.js) - Google Analytics