`
zkl_1987
  • 浏览: 246503 次
  • 性别: 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笔记-10.09

    这篇笔记主要涉及的是Android应用开发的基础知识,包括XML布局文件的编写和Activity的生命周期管理。 首先,XML布局文件是Android应用界面设计的核心。在给出的示例中,可以看到一个基本的LinearLayout布局。...

    Android Studio 学习笔记-新手入门-(1)第一个案例

    5. **运行应用**:连接Android设备或者启动模拟器,点击顶部工具栏的运行按钮(绿色的三角形),Android Studio会自动编译项目并安装到设备上。运行后,你将在屏幕上看到TextView和Button。点击Button,你会看到一个...

    Android--NoteBook

    在NoteBook中,我们可能可以看到一个典型的Android应用结构,包括`MainActivity`作为主界面,以及多个`Fragment`用于不同的功能模块,如创建笔记、查看笔记、编辑笔记等。`Activity`是Android应用的核心组件,负责...

    Android开发教程 笔记--基础UI编程

    本教程笔记将围绕Android的基础UI编程展开,帮助开发者掌握创建美观、功能丰富的用户界面所需的关键技能。 首先,我们从Android布局开始。Android支持多种布局管理器,如线性布局(LinearLayout)、相对布局...

    Android代码-mynote安卓笔记

    【Android代码-mynote安卓笔记】是一个典型的Android应用程序开发项目,主要目的是实现一个简单的笔记应用。这个项目可能作为学习或教学用途,提醒我们这可能是某位学生的学校作业,因此涉及的内容将围绕Android应用...

    新版Android开发教程+笔记--基础UI编程

    在Android中,常用的UI控件(Widgets)包括按钮(Button)、文本视图(TextView)、输入框(EditText)、图像视图(ImageView)、复选框(CheckBox)、单选按钮(RadioButton)、滑动条(SeekBar)、进度条...

    android入门学习笔记-永远不变的helloworld、初识activity

    ### Android入门学习笔记知识点解析 #### 一、HelloWorld与Android SDK - **HelloWorld的重要性**:在软件开发领域,HelloWorld程序被视为一种仪式性的入门程序,用来验证环境配置是否正确,同时也帮助开发者熟悉...

    雾山的Robotium学习笔记---使用junitreport导出测试报告

    例如,`clickOnButton()`方法用于点击按钮,`typeText()`用于输入文本,`waitForView()`则用于等待某个视图出现。 接下来,我们引入`junitreport`工具。`junitreport`是一个用于处理JUnit测试结果的XML格式报告的...

    Android笔记(2)---第一个 Android应用

    在Android开发的学习过程中,"第一个Android应用"是一个重要的里程碑,它标志着你开始接触并实践这个强大的移动操作系统。本文将深入探讨如何创建你的第一个Android应用,包括必要的环境配置、项目结构理解以及基本...

    android笔记本

    标题中的“android笔记本”指的是一个基于Android操作系统开发的笔记应用程序。在Android平台上,开发者通常使用Java或Kotlin语言,结合Android SDK(软件开发工具包)来构建这样的应用。这款简单的笔记本App可能是...

    Android学习笔记之Button,Toast,menu的简单用法

    在Android应用中,Menu主要用于在屏幕顶部或者底部显示一系列可选操作,通常在Activity的onCreateOptionsMenu()方法中创建: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater...

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

    本篇笔记将深入探讨Android中的Button组件,它是用户进行点击操作的主要元素,广泛用于触发事件或导航。 Button组件是Android SDK中的一个TextView子类,它继承了TextView的基本特性,如显示文本、设置字体样式等,...

    Android(OPhone)学习笔记-界面设计工具.doc

    本篇学习笔记主要介绍了一个开源的Android界面设计工具——DroidDraw,它允许开发者以可视化的方式创建界面布局,从而简化XML布局文件的编写过程。 DroidDraw是一款类似于VB、Delphi或JBuilder的拖放式界面设计工具...

    新版Android开发教程 笔记7--基础UI编程1

    以上是“新版Android开发教程 笔记7--基础UI编程1”中的核心知识点,通过学习和实践这些内容,开发者可以构建出功能丰富、交互流畅的Android应用程序。对于初学者而言,理解并熟练掌握这些概念是成为专业Android...

    Android开发学习笔记

    ### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...

    新版Android开发教程+笔记十一--可视化UI设计DroidDraw

    ### 新版Android开发教程+笔记十一--可视化UI设计DroidDraw #### 1. DroidDraw简介 DroidDraw是一款强大的Android GUI可视化设计器,能够帮助开发者轻松创建复杂的Android Layout XML文件。这款工具基于Java Swing...

    Android-一个简单的文本框用于添加没有广告的快速笔记

    【Android开发:构建一个无广告的快速笔记应用】 在Android平台上,开发一款简单且无广告的快速笔记应用是一项常见的任务,尤其对于初学者而言,它能帮助他们掌握基础的Android编程概念。本教程将深入探讨如何使用...

    新版Android开发教程+笔记12--文件存取、数据库编程

    ### 新版Android开发教程+笔记12--文件存取、数据库编程 #### 文件存取编程基础 在Android应用开发过程中,文件存取是一项基本而重要的功能。它允许开发者存储和检索用户数据,如配置文件、图像文件等。下面将详细...

    新版Android开发教程 笔记9--基础UI编程3

    这篇笔记主要聚焦于基础UI编程的第三部分,涵盖了多个关键知识点,旨在帮助开发者创建美观且功能丰富的Android应用。 首先,Android UI设计的核心是布局管理器(Layout Manager),如线性布局(LinearLayout)、...

    新版Android开发教程 笔记10--基础UI编程4

    接着,我们将讨论Android中的视图组件(View Components),如按钮(Button)、文本框(EditText)、图片视图(ImageView)、复选框(CheckBox)、单选按钮(RadioButton)等。这些组件是构成UI的基本砖块,它们提供...

Global site tag (gtag.js) - Google Analytics