Android控件与布局——基础控件CheckBox

        最近在用原生的控件和布局绘制一些界面并使用,虽然这些都是Android基本知识,但是有的时候真的感觉力不从心,感觉有必要对Android常用的控件和布局做一个系统的了解。后续一个月甚至更多的时间都会围绕这个主题展开,毕竟这里面还是有不少高级控件的,我也会尽量结合应用深入的进行了解。

项目GitHub地址入口

上一篇:ToggleButton       下一篇:RadioButton

今天,我们的主题是基础控件CheckBox,在开始之前,我们还是以官方文档为开端来开始我们的讲解,下面是Android文档中对CheckBox的简介:

* <p>
* A checkbox is a specific type of two-states button that can be either
* checked or unchecked. A example usage of a checkbox inside your activity
* would be the following:
* </p>

也是一种特殊的有两种状态的Button,在activity中经常的使用如下:

* public class MyActivity extends Activity {
*     protected void onCreate(Bundle icicle) {
*         super.onCreate(icicle);
*
*         setContentView(R.layout.content_layout_id);
*
*         final CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox_id);
*         if (checkBox.isChecked()) {
*             checkBox.setChecked(false);
*         }
*     }
* }

那我们知道,在上一篇的ToggleButton和这一篇CheckBox以及下一篇的RadioButton,都是继承至CompoundButton,下面是关于CompoundButton的概述

* <p>
* A button with two states, checked and unchecked. When the button is pressed
* or clicked, the state changes automatically.
* </p>

由此可知,后面介绍的RadioButton也是有两种状态的特殊Button,并且当有点击或者按压事件的时候就会有相应的状态变化。通常情况下,一个CheckBox的外在如下所示:

我们可以调整一些基本属性,包括文本内容,大小以及颜色,背景等等,如:

经常我们使用的场景如下:

这里我们主要通过监听其状态的改变来实现对应不同的逻辑业务。

  @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if(isChecked) {
            Log.e(TAG, "已经添加爱好:" + buttonView.getText().toString());
        }
        else {
            Log.e(TAG, "已经移除爱好: " + buttonView.getText().toString());
        }
    }

从上图中,我们可以看到,CheckBox默认选择是红色底框配上白色的对号。这里我们可以做一个简单的自定义样式显示。如下所示:

这里,我们还是通过自定义Drawable的方式来设置CheckBox中的android:button属性实现对CheckBox中Button样式的设置

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/chosen"></item>
    <item android:state_checked="false" android:drawable="@drawable/non_chosen_big"></item>
</selector>
 <CheckBox
        android:id="@+id/check_box1"
        android:button="@drawable/check_box_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        android:textSize="25sp"
        android:textColor="@color/colorPrimary"
        android:text="羽毛球" />

关于CheckBox到这里就算基本说完了,因为是一个比较简单的基础控件,本来是想放到ToggleButton和RadioButton中一起介绍的。关于这个控件开源不是很多,说明基本用法就差不多了,最多自己加一些动画或者变一点样式,这里列举两个在github上看到的例子:

(1)开源项目1

(2)开源项目2

 

上一篇:ToggleButton       下一篇:RadioButton

注:欢迎扫码关注

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值