android基本控件学习-----Button

Button讲解:

一、在我们实际的使用button的时候经常会对button不同状态会有不同的显示,在讲解Button前,首先对drawable下面的statelistdrawable的相关知识讲一下,StateListDrawable在一中drawable下面的一种资源文件,它的关键节点selector,我只需要在设置button属性background的时候@drawable/selector_name就可以了,这时就会根据不同状态现在button的变化,当然这样StateListDrawable也适合其他一些控件,主要还是用于Button。

StateListDrawable我们可能用到的属性:

  • drawable:引用的Drawable位图,我们可以把他放到最前面,就表示组件的正常状态~
  • state_focused:是否获得焦点
  • state_window_focused:是否获得窗口焦点
  • state_enabled:控件是否可用
  • state_checkable:控件可否被勾选,eg:checkbox
  • state_checked:控件是否被勾选
  • state_selected:控件是否被选择,针对有滚轮的情况
  • state_pressed:控件是否被按下
  • state_active:控件是否处于活动状态,eg:slidingTab
  • state_single:控件包含多个子控件时,确定是否只显示一个子控件
  • state_first:控件包含多个子控件时,确定第一个子控件是否处于显示状态
  • state_middle:控件包含多个子控件时,确定中间一个子控件是否处于显示状态
  • state_last:控件包含多个子控件时,确定最后一个子控件是否处于显示状态

二:实例一:实现按钮按下效果和按钮的圆角

Java文件

package com.example.test3;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
    private Button btn1;
    private Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1 = (Button) findViewById(R.id.btn_one);
        btn2 = (Button) findViewById(R.id.btn_two);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (btn2.getText().toString().endsWith("按钮不可用")){
                    btn1.setEnabled(false);
                    btn2.setText("按钮可用");
                }else{
                    btn1.setEnabled(true);
                    btn2.setText("按钮不可用");
                }
            }
        });
    }
}

StateListDrawable文件:其中关于shape的使用前面已经讲过

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--按下按钮-->
    <item android:state_pressed="true">
        <shape>
            <stroke android:width="5px" android:color="@android:color/holo_red_light"/>
            <corners android:radius="15dp"/>
            <solid android:color="@android:color/holo_red_light"/>
        </shape>
    </item>
    <!-- 按钮不可用-->
    <item android:state_enabled="false">
        <shape>
            <stroke android:width="5px" android:color="@android:color/darker_gray"/>
            <corners android:radius="15dp"/>
            <solid android:color="@android:color/darker_gray"/>
        </shape>
    </item>
    <!--其他状况-->
    <item>
        <shape>
            <stroke android:width="5px" android:color="@android:color/holo_blue_bright"/>
            <corners android:radius="15dp"/>
            <solid android:color="@android:color/holo_blue_bright"/>
        </shape>
    </item>
</selector>

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#ffffff">
    <Button
        android:id="@+id/btn_one"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:background="@drawable/btn_bg1"
        android:text="按钮"
        android:textStyle="bold"
        android:textSize="24sp"/>
    <Button
        android:id="@+id/btn_two"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_marginTop="10dp"
        android:text="按钮不可用"
        android:textSize="24sp"
        android:textStyle="bold"
        />

</LinearLayout>

效果图:

时间: 2024-11-04 10:08:18

android基本控件学习-----Button的相关文章

android基本控件学习-----Date&amp;Time

Date&Time这里一共讲解下面6个: TextClock(文本时钟),AnalogClock(模拟时钟),Chronometer(计时器),DatePicker(日期选择器),TimePicker(时间选择器),CalendarView(日期视图)这六个前面三个很少用到,后面三个如果在实际的应用中可能更需要我们自定义,这几控件个人觉得用的不多,可以动手看看运行效果图就行了. 一.TextClock(文本时钟)是在android4.2(API17)后推出的一个新的控件来替代之前Digital的

Android基础控件之Button的基本使用

Button基本使用方法 首先,添加Button控件到XML布局文件中.也可通过程序添加. 在布局文件中设置按钮的一些属性,如位置,宽高,按钮上的字,颜色等. 比较重要的是要给按钮一个id号,这是按钮唯一的名字. 这样在程序中可以通过如下形式获得按钮: button = (Button)findViewById(R.id.buttonId); 处理按钮点击 按钮点击有两种处理方法. 第一种是通过onClick属性,通过这个属性设置处理点击事件的方法名,在Activity中实现这个方法. 另一种方

android基本控件学习-----ImageView

ImageView的讲解 一.src和background的区别 background我们通常理解是背景,而src是内容,当使用src填入图片的时候是以图片的大小直接填充,并不会进行拉伸,而background填入图片会根据指定的大小对图片进行缩放拉伸. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.co

android基本控件学习-----RadioButton&amp;CheckBox

RadioButton(单选框)和CheckBox(复选框)讲解: 一.基本用法和事件处理 (1)RadioButton单选框,就是只能选择其中的一个,我们在使用的时候需要将RadioButton放到RadioGroup中使用,同时我们还可以在RadioGroup中设置  orientation属性来控制单选框的方向. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi

android基本控件学习-----ScrollView

ScrollView(滚动条)的讲解: 一.对于ScrollView滚动条还是很好理解的,共有两种水平和垂直,ScrollView和HorizontalScrollview,这个里面不知道该总结写什么,说说几个方法吧 scrollView.fullScroll(ScrollView.FOCUS.DOWN):回到低部 scrollView.fullScroll(ScrollView.FOCUS.UP):回到顶部 scrollView.setVerticalSrcollBarEnabled(fals

android基本控件学习-----ToggleButton&amp;Switch

ToggleButton(开关按钮)和Switch(开关)讲解: 一.核心属性讲解: (1)ToggleButton textOn:按钮被选中的时候文字显示 textOff:按钮没有被选中的时候文字显示 (2)switch: showText:设置textOn/off的时候文字是否显示 android:showText:设置on/off的时候是否显示文字,boolean android:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,boolean android:switchMi

Android必备:Android UI控件的了解与学习

看这里:Android必备:Android UI控件的了解与学习 由于工作需要,最近一段时间,需要进行Android App开发的学习,之前简单的进行过Android的了解,对于基本的Android环境的搭建等已经有过整理,一个Android App是由一个或多个Activity组成,每一个Activity都是一个UI容器,也就是一个屏幕界面,一个界面的组成则是由一组Android UI控件组成,本篇,我们就来简单的对Android UI控件进行初步的了解和学习. Android UI控件根据其

【读书笔记-《Android游戏编程之从零开始》】3.Android 游戏开发常用的系统控件(Button、Layout、ImageButton)

3.1 Button Button这控件不用多说,就是一个按钮,主要是点击后进行相应事件的响应. 给组件添加ID属性:定义格式为 android:id="@+id/name",这里的name是自定义的,不是索引变量."@+"表示新声明,"@"表示引用,例如:"@+id/tv" 表示新声明一个id,是id名为tv的组件:"@id/tv" 表示引用id名为tv的组件. 给按钮添加点击事件响应  想知道按钮是否被

.net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器

1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.WebForm使用母版页进行登录时候的验证 //新建一个页面父类 public abstract class BasePage:Page { protected void Page_Load(object sender, EventArgs e) { //1.身份验证的方法 Session if (Se