精华内容
下载资源
问答
  • 编写程序,通过复选框控件数组事先选择用户爱好信息的复选框,在该程序中,要求界面中的复选框数量可以根据指定复选框名称的字符串数组的长度来自动调节
  • CheckBox复选框控件使用方法,具体内容如下 一、简介 1、 2、类结构图 二、CheckBox复选框控件使用方法 这里是使用java代码在LinearLayout里面添加控件 1、新建LinearLayout布局 2、建立CheckBox的XML的Layout文件...
  • 本文主要介绍ASP.NET中CheckBox复选框控件的使用,并举例演示其用法,希望对大家有所帮助。
  • LVGL GUI复选框控件的概念 复选框是一种可同时选中多项的基础控件,他是什么模样来,来几张图说明下 总之这个是GUI中使用频率比较高的一种控件! 二. LVGL GUI复选框小部件和样式 有两种小部件: LV_...

    一. LVGL GUI复选框控件的概念

    复选框是一种可同时选中多项的基础控件,他是什么模样来,来几张图说明下

    总之这个是GUI中使用频率比较高的一种控件!

    二. LVGL GUI复选框小部件和样式

    有两种小部件:

    LV_CHECKBOX_PART_BG:背景

    LV_CHECKBOX_PART_BULLET:指的是复选框本身的小框框,不包含文字

    写一个代码来看下:

    void lvgl_check_box_part_test(void)
    {
        lv_obj_t* cb1 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb1, "Check Box 1");
        lv_obj_align(cb1, NULL, LV_ALIGN_CENTER, 0, -40);
    
        
        lv_obj_t* cb2 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb2, "Check Box 2");
        lv_obj_align(cb2, NULL, LV_ALIGN_CENTER, 0, 0);
        lv_obj_set_style_local_bg_color(cb2, LV_CHECKBOX_PART_BG, LV_STATE_DEFAULT, LV_COLOR_RED);
    
        lv_obj_t* cb3 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb3, "Check Box 3");
        lv_obj_align(cb3, NULL, LV_ALIGN_CENTER, 0, 40);
        lv_obj_set_style_local_bg_color(cb3, LV_CHECKBOX_PART_BULLET, LV_STATE_DEFAULT, LV_COLOR_BLUE);
    }

    效果:

    三. LVGL GU复选框控件的使用

    1.  文本(Text)

    被复选框添加文本,用这个函数lv_checkbox_set_text(cb, "New text")

    代码以及效果如下:

    void lvgl_check_box_text_test(void)
    {
        lv_obj_t* cb1 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb1, "This check Box 1");
        lv_obj_align(cb1, NULL, LV_ALIGN_CENTER, 0, -40);
    
    
        lv_obj_t* cb2 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb2, "This check Box 2");
        lv_obj_align(cb2, NULL, LV_ALIGN_CENTER, 0, 0);
    
    
        lv_obj_t* cb3 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb3, "This check Box 3");
        lv_obj_align(cb3, NULL, LV_ALIGN_CENTER, 0, 40);
    }

    2. 选中/未选中(Check/Uncheck)

    复选框是否被选中,用这个函数设置复选框是否被选中,下面我们就创建两个复选框,一个默认选中,一个默认没有选中(默认就是没有选中的)

    void lvgl_check_box_check_test(void)
    {
        lv_obj_t* cb1 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb1, "This check Box 1");
        lv_obj_align(cb1, NULL, LV_ALIGN_CENTER, 0, -40);
    
    
        lv_obj_t* cb2 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb2, "This check Box 2");
        lv_obj_align(cb2, NULL, LV_ALIGN_CENTER, 0, 0);
        lv_checkbox_set_checked(cb2,true);
    }

    3. 禁用(Disabled)

    这个的意思就是把复选框灰掉,导致不可点击,用这个函数实现lv_checkbox_set_disabled(cb, true)。

    注意:

    • LVGL官网是带两个参数的,但是我用的7.10版本已经是一个参数了,只有object指针!
    • 你会发现并没有找到重新enable的函数,我自己试验发现把check状态设置了就是enable了!

    我们同样实现三个复选框,一个正常的复选框控件,第二个是禁用的,第三个是禁用后然后设置check状态后重新enable的

    void lvgl_check_box_disable_test(void)
    {
        lv_obj_t* cb1 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb1, "This check Box 1");
        lv_obj_align(cb1, NULL, LV_ALIGN_CENTER, 0, -40);
    
    
        lv_obj_t* cb2 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb2, "This check Box 2");
        lv_obj_align(cb2, NULL, LV_ALIGN_CENTER, 0, 0);
        lv_checkbox_set_disabled(cb2);
    
        lv_obj_t* cb3 = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb3, "This check Box 3");
        lv_obj_align(cb3, NULL, LV_ALIGN_CENTER, 0, 40);
        lv_checkbox_set_disabled(cb3);
        lv_checkbox_set_checked(cb3, true);
    }

    4. 获取/设置状态(Get/Set Checkbox State)

    获取状态用以下函数lv_checkbox_get_state(cb)

    设置状态用以下函数lv_checkbox_set_state(cb, state)

    其中状态值有以下:

    • LV_BTN_STATE_RELEASED

    • LV_BTN_STATE_PRESSED

    • LV_BTN_STATE_DISABLED

    • LV_BTN_STATE_CHECKED_RELEASED

    • LV_BTN_STATE_CHECKED_PRESSED

    • LV_BTN_STATE_CHECKED_DISABLED

    5. 事件(Event)

    除了基本事件外,复选框有个特殊事件

    LV_EVENT_VALUE_CHANGED :当切换复选框状态的时候会产生,我们来写个代码验证下

    static void check_box_event_handler(lv_obj_t* obj, lv_event_t event)
    {
        if (event == LV_EVENT_VALUE_CHANGED) {
            printf("State: %s\n", lv_checkbox_is_checked(obj) ? "Checked" : "Unchecked");
        }
    }
    
    void lvgl_check_box_test(void)
    {
        lv_obj_t* cb = lv_checkbox_create(lv_scr_act(), NULL);
        lv_checkbox_set_text(cb, "I agree to terms and conditions.");
        lv_obj_align(cb, NULL, LV_ALIGN_CENTER, 0, 0);
        lv_obj_set_event_cb(cb, check_box_event_handler);
    }

    好了,完结了,更多精彩继续戳↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    展开全文
  • VC6中的MFC中的单选框与复选框控件也不简单,它没有VS中C#那样可以之间通过一个封装之后的函数进行判断,该单选框/复选框有没有被选中啊?或者控制单选框/复选框的选中状态。这东西比较复杂,通过相应的值来控制的。...

    VC6中的MFC中的单选框与复选框控件也不简单,它没有VS中C#那样可以之间通过一个封装之后的函数进行判断,该单选框/复选框有没有被选中啊?或者控制单选框/复选框的选中状态。这东西比较复杂,通过相应的值来控制的。


    一、基本目标

    下面就用一个简单例子来说明VC6中的MFC中的单选框与复选框控件,点击“确定”按钮能够判断对话框中的所有单选框与复选框的选中状态。Radio1-Radio3互成一个组,组内仅能够有一个组员被选中,Radio4-Radio5也互成一组,选择Radio4能够令复选框中的Check1-Check3全选,选择Radio5则实现了复选框的反选功能。同时为了美观,还引入了组框控件。


    二、制作过程

    1、新建一个什么都没有的基于对话框的、静态DLL的MFC,怎么新建可以看我之前的《【mfc】学生信息管理,实现List控件节点的增删改查》(点击打开链接),然后在对话框中拖入组框,单选框与复选框。组框没什么好说的,可静态文本一样道理,就只有显示功能,不别设置任何函数。你只需要改改其Caption即可。


    2、之后唯一需要注意的是单选框的样式工具,在单选框的样式中,如果你选择了一个单选框为组,那么其之后直到下一个被选为“组”单选框,都是属于这个“组“,组内的单选框仅能够有一个被悬泉,举个例子就很明白了。比如上图中有Radio1-5的五个单选框,如果仅把Radio1设置为组,那么Radio1-Radio5都属于这个组,Radio1-Radio5仅能够有一个被选取。如果把Radio1与Radio4设置为组,就像上图一样,那么Radio1-Radio3仅能够有一个被选取,Radio4-Radio5仅能够有一个被选取。再又如,如果把Radio1,Radio3,Radio5选择为组,那么Radio1-Radio2、Radio3-Radio4、Radio5分别仅能能够选择一个。对比于C#把同一个组内的单选框设置为同一groudID是不同的。


    3、之后对这个主对话框中的单选框/复选框设置成员变量,以至于他们能够被程序控制,同样是Ctrl+W或者其它方式为这个对话框新建类向导,只是这个是在成员变量的标签页中设置。


    4、一般成员变量的类型按默认即可,基本上也没有你选择余地,MFC就是规定通过布尔值的是与非来判断这个复选框是否被选中。


    5、注意观察,单选框只有被选为“组”的单选框有成员变量设置,实际上这个“组”单选框已经包含其后的所有成员了。它通过int值来判断组内那个单选框被选中,-1是组内所有单选框都没有选中,0是组内第一个,1是组内第二个……以此类推


    6、对所有单选框/复选框设置完成员变量之后,如下图所示:


    7、点击“确定”就可以开始对函数的写作,你可以在ClassView中,找到刚才设置的成员变量,并且能够为单选框/复选框的初始状况,比如把m_Check1改成TRUE,那么这个对话框刚启动,复选框Check1就被选中了,而m_Radio1_3你把它改成0-2,那么所对应Radio1-3则最初就被选中。别问我改成3以上的值会怎么样,那就只有程序出错,Win32崩溃而已了。


    8、之后,你还可以与按钮一样,在控件界面,双击任意一个单选框/复选框,添加这个单选框/复选框被选中时的消息映射函数。比如,我们为单选框Radio4添加复选框全选功能则写入如下函数:

    void CCheckBox_RadioDlg::OnRadio4() 
    {
    	//这里注意不要写成m_Check1,m_Check2...的形式
    	for (int i=IDC_CHECK1;i<=IDC_CHECK3;i++){
    		((CButton*)GetDlgItem(i))->SetCheck(1);
    	} 
    	
    }
    ((CButton*)GetDlgItem(i))->SetCheck(1);能够设置一个复选框的值,同时IDC_CHECK1-IDC_CHECK3虽然作为控件的ID,但实质上一个int,所以可以如上所示地进行遍历。

    9、而选中Radio5,则现实反选功能,所以Radio5有如下的函数的函数:

    //反选
    void CCheckBox_RadioDlg::OnRadio5() 
    {
    	// TODO: Add your control notification handler code here
    	for(int i=IDC_CHECK1;i<=IDC_CHECK3;i++){
    		//通过((CButton*)GetDlgItem(i))->GetCheck()也可以拿到复选框的值
    		//拿单选框的值同样是没有问题的
    		//但是这个函数值是记录,你时候有选择这个单选框/复选框
    		if(((CButton*)GetDlgItem(i))->GetCheck()){
    			((CButton*)GetDlgItem(i))->SetCheck(0);
    		}
    		else{
    			((CButton*)GetDlgItem(i))->SetCheck(1);
    		}
    	} 
    }
    
    10、至于点击“确定”按钮还有判断对话框内控件时候被选中,所以OnOK应该这样写,利用条件结构来根据单选框/复选框的选中情况,执行相应的语句。

    void CCheckBox_RadioDlg::OnOK() 
    {
    	// TODO: Add extra validation here
    	
    	//CDialog::OnOK();
    	//这句话必须存在,意思为重新遍历一下所有控制的变量值,把用户选取的值读取进来
    	UpdateData();
    	CString str;
    	switch(m_Radio1_3){
    	case -1:
    		str="单选框1_3,你什么都没有选!";
    		break;
    	case 0:
    		str="单选框1_3,你选择你Radio1";
    		break;
    	case 1:
    		str="单选框1_3,你选择你Radio2";
    		break;
    	case 2:
    		str="单选框1_3,你选择你Radio3";
    		break;
    	}
    	AfxMessageBox(str);
    	switch(m_Radio4_5){
    	case -1:
    		str="单选框4_5,你什么都没有选!";
    		break;
    	case 0:
    		str="单选框4_5,你选择你Radio4";
    		break;
    	case 1:
    		str="单选框4_5,你选择你Radio5";
    		break;
    	}
    	AfxMessageBox(str);
    	str="选中:";
    	if(m_Check1)
    		str+="【复选框1】";
    	if(m_Check2)
    		str+="【复选框2】";
    	if(m_Check3)
    		str+="【复选框3】";
    	if(!m_Check1&&!m_Check2&&!m_Check3)
    		str="你没有选择任何复选框!";
    	AfxMessageBox(str);
    }



    展开全文
  • 使用Excel复选框控件制作多选调查问卷.rar,复选框控件用于二元选择,控件的返回值为True或False,见本例“使用复选框控件制作哦多选调查问卷”。
  • android 平台手机软件中的复选框控件
  • 在ASP.NET中使用复选框控件.rar在ASP.NET中使用复选框控件.rar
  • 在MSFlexGrid上的某列自定义添加复选框.
  • 看实例学VFP:复选框控件 时间:2009-03-24来源:编程入门网 作者:老马  在vfp基础教程-复选框一文中,已经给出了复选框控件的常用属性。这个控件的使用重点是对它的value属性值的判断上,另外也可以通过control...
  • 按钮和复选框控件

    千次阅读 2016-01-26 17:05:00
    概述本篇文章介绍Android SDK中的按钮和复选框控件。按钮可以分为多种,例如普通按钮(Button)、图像按钮(ImageButton)、选项按钮(RadioButton)、复选框(CheckBox)等Button官方介绍Class OverviewRepresents ...

    概述

    本篇文章介绍Android SDK中的按钮和复选框控件。按钮可以分为多种,例如普通按钮(Button)、图像按钮(ImageButton)、选项按钮(RadioButton)、复选框(CheckBox)等


    Button

    官方介绍

    Class Overview

    Button

    Represents a push-button widget. Push-buttons can be pressed, or clicked, by the user to perform an action.

    A typical use of a push-button in an activity would be the following:

     public class MyActivity extends Activity {
         protected void onCreate(Bundle icicle) {
             super.onCreate(icicle);
    
             setContentView(R.layout.content_layout_id);
    
             final Button button = (Button) findViewById(R.id.button_id);
             button.setOnClickListener(new View.OnClickListener() {
                 public void onClick(View v) {
                     // Perform action on click
                 }
             });
         }
     }

    However, instead of applying an OnClickListener to the button in your activity, you can assign a method to your button in the XML layout, using the android:onClick attribute. For example:

     <Button
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:text="@string/self_destruct"
         android:onClick="selfDestruct" />

    Now, when a user clicks the button, the Android system calls the activity’s selfDestruct(View) method. In order for this to work, the method must be public and accept a View as its only parameter. For example:

     public void selfDestruct(View view) {
         // Kabloey
     }

    The View passed into the method is a reference to the widget that was clicked.

    Button Style

    Every Button is styled using the system’s default button background, which is often different from one device to another and from one version of the platform to another.

    If you’re not satisfied with the default button style and want to customize it to match the design of your application, then you can replace the button’s background image with a state list drawable.

    A state list drawable is a drawable resource defined in XML that changes its image based on the current state of the button. Once you’ve defined a state list drawable in XML, you can apply it to your Button with the android:backgroundattribute. For more information and an example, see State List Drawable.

    State List

    A StateListDrawable is a drawable object defined in XML that uses a several different images to represent the same graphic, depending on the state of the object. For example, a Button widget can exist in one of several different states (pressed, focused, or neither) and, using a state list drawable, you can provide a different background image for each state.

    You can describe the state list in an XML file. Each graphic is represented by an <item> element inside a single <selector> element. Each <item> uses various attributes to describe the state in which it should be used as the graphic for the drawable.

    During each state change, the state list is traversed top to bottom and the first item that matches the current state is used—the selection is not based on the “best match,” but simply the first item that meets the minimum criteria of the state.
    每个状态改变时,状态列表遍历从上到下,第一项相匹配的当前状态是使用选择不是基于“最佳匹配”,但只是第一项满足最低标准的状态,即:系统是从上往下匹配的,如果匹配到一个item那么它就将采用这个item,而不是采用的最佳匹配的规则,所以设置缺省的状态,一定要写在最后,很多人为了保险起见,一开始就把缺省的写好,那么这样后面所有的item就都不会起作用了,还会因此找不着哪里出了问题。

    FILE LOCATION:

    res/drawable/filename.xml
    The filename is used as the resource ID.

    COMPILED RESOURCE DATATYPE:

    Resource pointer to a StateListDrawable.

    RESOURCE REFERENCE:

    In Java: R.drawable.filename
    In XML: @[package:]drawable/filename

    SYNTAX:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android"
        android:constantSize=["true" | "false"]
        android:dither=["true" | "false"]
        android:variablePadding=["true" | "false"] >
        <item
            android:drawable="@[package:]drawable/drawable_resource"
            android:state_pressed=["true" | "false"]
            android:state_focused=["true" | "false"]
            android:state_hovered=["true" | "false"]
            android:state_selected=["true" | "false"]
            android:state_checkable=["true" | "false"]
            android:state_checked=["true" | "false"]
            android:state_enabled=["true" | "false"]
            android:state_activated=["true" | "false"]
            android:state_window_focused=["true" | "false"] />
    </selector>

    ELEMENTS:

    selector属性selector说明
    android:constantSize我们在后面那个item里面设置drawable这个东西的大小是不是固定的。我们这个文件一般都是用作控件的Backgroup或者selector总之就是背景状态,一般背景都是把控件的后面全部覆盖,但有的时候我们要设置设固定的大小,比如一个Button有300*200大,而设置这个Button的背景图片只有200*100,而现在我们又不想图片被拉大把覆盖整个Button的底层,那么就可以把这个属性设置为true,这样图片就只显示在中间了,就像我们设置桌面背景一样,可以设置成居中、拉伸,如果这里设置成true就相当于居中,如果不设置或者设置为false就是拉伸.
    android:dither是否让系统来帮我们处理颜色差异,一般android系统中使用的颜色是ARGB_8888,但很多显示设置是RGB_565,这个ARGB_8888与RGB_565有什么区别呢。这个ARGB_8888也就是说每一个像素点要拿4个字节来保存,依次每个字节是A8个字节,R8个字节,G8个字节,B8个字节,来保存,而RGB_565它只用了两个字节来保存颜色,两个字节总共16位,前5位保存R,中间6位保存G,后5位保存B.因此呀,如果android系统的点显示到屏幕上,还得转换一下,在这里这个dither就起作用了,如果我们把它设置为true的话,那显示的时候屏幕间断的取点,这样的结果,有的时候看上去就有那种分层的感觉,也就是前面一部分的颜色与后面一部分的颜色感觉断层了,就是很不平滑的感觉,如果我们这里设置为true的话,默认就是true,android系统,它会在取的点之间再经过一些计算,在其间补充一点相间的颜色使看起来比较平滑,但这样和真的图片还是有差异的,因些有的人想要得到很逼真的显示,这里就得自己来计算了,自己来计算,即占内存又占cpu,但颜色可以很逼真,如果有这样的需求那这里就要把这个属性设置为false
    android:variablePadding可变的填充,在当当前这个组件被selected的时候,比如某一个tab被selected,或者listView里面的个item被selected的时候,如果设置为true的话,那么被选的这个tab或item的填充就会变大,使得看上去与其它的tab或item不一样。

    item属性item说明
    android:drawable如果系统匹配上当前这个item(也就是要使用这个item),那么就用这里设置的资源这个资源,一般都为图片。
    android:state_enabled设置触摸或点击事件是否可用状态,一般只在false时设置该属性,表示不可用状态。这个是当一个组件是否能处理touch或click事件的时候的状态,如果要对组件能否响应事件设置不同背景的时候,就要靠这个属性了.
    android:state_pressed设置是否按压状态,一般在true时设置该属性,表示已按压状态,默认为false。就是说当前这个组件是否被按下,如果要设置按下的那一刻的状态,那么这里就要设置为true,例如,一个Button当手按下去后,还没有离开的状态(就是touched住的时候,还没有放开,和Clicked,点击时的那一刻)
    android:state_selected设置是否选中状态,true表示已选中,false表示未选中。这个是当一个tab被打开的状态。或者一个listView等里面一个item被选择的时候的状态,因此这个属性设置在一般的组件上面是没有用的,只有设置有作为tab或item的布局里面的项时,这个属才起作用.
    android:state_checked置是否勾选状态,主要用于CheckBox和RadioButton,true表示已被勾选,false表示未被勾选 。这个是当一个组件被checked 或者没有checked 的时候的状态,也就是说只有在可checkable上面的组件才有作用的,一般常见的就是多选按钮组与单选按钮组里面的项,这个才有作用的。
    android:state_checkable设置勾选是否可用状态,类似state_enabled,只是state_enabled会影响触摸或点击事件,而state_checkable影响勾选事件。这个是当一个组件在可以checked或不可以checked的时候的状态,现在较常见的,能够checkable的组件有,单选项和多选项,所以这个属性只有设置在像这类组件上面才有作用的。
    android:state_focused设置是否获得焦点状态,true表示获得焦点,默认为false,表示未获得焦点。 这个是当获得焦点的时候的状态,就是当控件高亮的时候的状态,哪些情况可以造成此状态呢,比如说,轨迹球(有的手机上面有一个小球,可以用手指在上面向不同的方向滚动,滚动的时候,界面里面的焦点,就会转向滚动的方向的控件),还有就是d-pad之类的东西(比如果游戏手柄上面的上下左右键,还有键盘上面的上下左右键等)这些东西就可以控制组件上面的焦点。
    android:state_window_focused设置当前窗口是否获得焦点状态,true表示获得焦点,false表示未获得焦点,例如拉下通知栏或弹出对话框时,当前界面就会失去焦点;另外,ListView的ListItem获得焦点时也会触发true状态,可以理解为当前窗口就是ListItem本身。这个是是否对当前界面是否得到焦点的两种状态的设置,比如说当我们打开一个界面,那么这个界面就获得了焦点,如果我们去把“通知”拉下来,那么这个界面就失去焦点,或者弹出了一个对话框,那么这个界面也失去焦点了。
    android:state_activated设置是否被激活状态,true表示被激活,false表示未激活,API Level 11及以上才支持,可通过代码调用控件的setActivated(boolean)方法设置是否激活该控件
    android:state_hovered设置是否鼠标在上面滑动的状态,true表示鼠标在上面滑动,默认为false,API Level 14及以上才支持。当光标移动到某一个组件之上的时候的状态,到目前为止,还没有看见过哪个手机设备带有鼠标之类的东西,可能这个专门是为平板电脑设置的或者以后可能出现带有鼠标之类的设备而准备的吧,文档中说,一般这个值设置为与focused这个值一样。

    EXAMPLE:

    XML file saved at res/drawable/button.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true"
              android:drawable="@drawable/button_pressed" /> <!-- pressed -->
        <item android:state_focused="true"
              android:drawable="@drawable/button_focused" /> <!-- focused -->
        <item android:state_hovered="true"
              android:drawable="@drawable/button_focused" /> <!-- hovered -->
        <item android:drawable="@drawable/button_normal" /> <!-- default -->
    </selector>

    This layout XML applies the state list drawable to a Button:

    <Button
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:background="@drawable/button" />

    图文混排的按钮

    实现方式

    两种方式:

     1. 使用`<Button>`标签的android:drawableXXX属性,其中XXX表示Top、Bottom、Left、Right。这4个属性都是资源类型,需要指定图像资源的ID,分别表示在上下左右插入一个图像。同时还可以配合android:drawablePadding属性来设置图像到文字的举例。
     2. Button和EditText一样,也是TextView的之类,因此也可以采用与TextView、EditText同样的方式实现图文混排(我写的这个demo在2.3的SDK中运行OK。4.0+以上报错,未找到原因)
    

    android:drawableXXX属性实现

      <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawableTop="@drawable/flag_mark_violet"
                android:text="按钮1" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawableBottom="@drawable/flag_mark_yellow"
                android:drawablePadding="30dp"
                android:text="按钮2" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawableLeft="@drawable/flag_mark_blue"
                android:text="按钮3" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawablePadding="20dp"
                android:drawableRight="@drawable/flag_mark_red"
                android:text="按钮4" />

    代码实现

    
            Button button = (Button) findViewById(R.id.button);
            // 左侧图片
            SpannableString spannableStringLeft = new SpannableString("left");
            Bitmap bitmapLeft = BitmapFactory.decodeResource(getResources(),R.drawable.flag_mark_blue);
            ImageSpan imageSpanLeft = new ImageSpan(this,bitmapLeft,DynamicDrawableSpan.ALIGN_BOTTOM);
            spannableStringLeft.setSpan(imageSpanLeft, 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            // 右侧图片
            SpannableString spannableStringRight = new SpannableString("right");
            Bitmap bitmapRight = BitmapFactory.decodeResource(getResources(),R.drawable.flag_mark_green);
            ImageSpan imageSpanRight = new ImageSpan(this,bitmapRight,DynamicDrawableSpan.ALIGN_BOTTOM);
            spannableStringRight.setSpan(imageSpanRight, 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
            button.append(spannableStringLeft);
            button.append("我的按钮");
            button.append(spannableStringRight);

    ImageButton

    ImageButton extends ImageView

    Displays a button with an image (instead of text) that can be pressed or clicked by the user. By default, an ImageButton looks like a regular Button, with the standard button background that changes color during different button states. The image on the surface of the button is defined either by the android:src attribute in the XML element or by the setImageResource(int) method.

    To remove the standard button background image, define your own background image or set the background color to be transparent.

    ImageButton可以作为图像按钮使用,如果想在代码中修改ImageButton的图像可以使用ImageButton类的setImageResource或者其他类似的方法,

     <ImageButton
            android:id="@+id/id_imgBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="@android:color/transparent"
            android:src="@drawable/flag_mark_green"/>

    值的注意的是: ImageButton并不是TextView的之类,而是ImageView的之类,因此并没有android:text属性,如果要想在ImageButton上添加文字,可以自定义控件,重写onDraw方法。


    RadioButton

    Radio buttons allow the user to select one option from a set. You should use radio buttons for optional sets that are mutually exclusive if you think that the user needs to see all available options side-by-side. If it’s not necessary to show all options side-by-side, use a spinner instead.
    这里写图片描述

    To create each radio button option, create a RadioButton in your layout. However, because radio buttons are mutually exclusive, you must group them together inside a RadioGroup. By grouping them together, the system ensures that only one radio button can be selected at a time.

    Responding to Click Events

    When the user selects one of the radio buttons, the corresponding RadioButton object receives an on-click event.

    To define the click event handler for a button, add the android:onClick attribute to the element in your XML layout. The value for this attribute must be the name of the method you want to call in response to a click event. The Activity hosting the layout must then implement the corresponding method.

    For example, here are a couple RadioButton objects:

    <?xml version="1.0" encoding="utf-8"?>
    <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <RadioButton android:id="@+id/radio_pirates"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/pirates"
            android:onClick="onRadioButtonClicked"/>
        <RadioButton android:id="@+id/radio_ninjas"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/ninjas"
            android:onClick="onRadioButtonClicked"/>
    </RadioGroup>

    Note: The RadioGroup is a subclass of LinearLayout that has a vertical orientation by default.

    Within the Activity that hosts this layout, the following method handles the click event for both radio buttons:

    public void onRadioButtonClicked(View view) {
        // Is the button now checked?
        boolean checked = ((RadioButton) view).isChecked();
    
        // Check which radio button was clicked
        switch(view.getId()) {
            case R.id.radio_pirates:
                if (checked)
                    // Pirates are the best
                break;
            case R.id.radio_ninjas:
                if (checked)
                    // Ninjas rule
                break;
        }
    }

    The method you declare in the android:onClick attribute must have a signature exactly as shown above. Specifically, the method must:

    • Be public
    • Return void
    • Define a View as its only parameter (this will be the View that was clicked)

    • Tip: If you need to change the radio button state yourself (such as when loading a saved CheckBoxPreference), use the setChecked(boolean) or toggle() method.

    ToogleButton

    官方文档

    A toggle button allows the user to change a setting between two states.

    You can add a basic toggle button to your layout with the ToggleButton object. Android 4.0 (API level 14) introduces another kind of toggle button called a switch that provides a slider control, which you can add with a Switch object.

    If you need to change a button’s state yourself, you can use the CompoundButton.setChecked() or CompoundButton.toggle() methods.

    ToogleButtons

      <ToggleButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textOn="开"
            android:textOff="关"/>
    

    Responding to Button Presses

    To detect when the user activates the button or switch, create an CompoundButton.OnCheckedChangeListener object and assign it to the button by calling setOnCheckedChangeListener(). For example:

    ToggleButton toggle = (ToggleButton) findViewById(R.id.togglebutton);
    toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                // The toggle is enabled
            } else {
                // The toggle is disabled
            }
        }
    });

    CheckBox

    Checkboxes allow the user to select one or more options from a set. Typically, you should present each checkbox option in a vertical list.

    这里写图片描述

    To create each checkbox option, create a CheckBox in your layout. Because a set of checkbox options allows the user to select multiple items, each checkbox is managed separately and you must register a click listener for each one.

    Responding to Click Events

    When the user selects a checkbox, the CheckBox object receives an on-click event.

    To define the click event handler for a checkbox, add the android:onClick attribute to the element in your XML layout. The value for this attribute must be the name of the method you want to call in response to a click event. The Activity hosting the layout must then implement the corresponding method.

    For example, here are a couple CheckBox objects in a list:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <CheckBox android:id="@+id/checkbox_meat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/meat"
            android:onClick="onCheckboxClicked"/>
        <CheckBox android:id="@+id/checkbox_cheese"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/cheese"
            android:onClick="onCheckboxClicked"/>
    </LinearLayout>

    Within the Activity that hosts this layout, the following method handles the click event for both checkboxes:

    public void onCheckboxClicked(View view) {
        // Is the view now checked?
        boolean checked = ((CheckBox) view).isChecked();
    
        // Check which checkbox was clicked
        switch(view.getId()) {
            case R.id.checkbox_meat:
                if (checked)
                    // Put some meat on the sandwich
                else
                    // Remove the meat
                break;
            case R.id.checkbox_cheese:
                if (checked)
                    // Cheese me
                else
                    // I'm lactose intolerant
                break;
            // TODO: Veggie sandwich
        }
    }

    The method you declare in the android:onClick attribute must have a signature exactly as shown above. Specifically, the method must:

    • Be public
    • Return void
    • Define a View as its only parameter (this will be the View that was clicked)

    • Tip: If you need to change the radio button state yourself (such as when loading a saved CheckBoxPreference), use the setChecked(boolean) or toggle() method.
    展开全文
  • VC++ 复选框控件视频

    2010-04-21 20:26:50
    CheckBoxControl在VC++是一个重要的控件,初学者可以通过此视频掌握复选框用法
  • WinUI的复选框通过CWUICheckBox来实现.">1,按钮: WinUI的按钮实现为CWUIButton, 此示例提供以下功能: 1,按钮获取焦点状态 2,按钮的失效提供了二种方案 A, 通过图片表示按钮失效状态 B,通过WinUI的皮肤内的透明...
  • 作者dim0v,代码DOCheckboxControl。 介绍: DOCheckboxControl是适用于iOS的轻量级和可自定义的复选框控件,用Swift写的。
  • 主要为大家详细介绍了wx.CheckBox创建复选框控件并响应鼠标点击事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 下面是纯CSS设置Checkbox复选框控件的五种简单样式,有兴趣的可以进行改动将其变成自己想要的样式。 首先,需要添加一段CSS隐藏所有的Checkbox复选框,下面我们会改变它的外观。要做到点需要添加一段代码到你的CSS...
  • 省市区联动下拉,下拉框复选框控件,需要用得话按照自己的需求去修改js
  • C# CheckBox:复选框控件

    万次阅读 2019-06-11 14:42:21
    复选框主要的属性是:Name、Text、Checked。 其中: Name:表示这个组件的名称; Text:表示这个组件的标题; Checked:表示这个组件是否已经选中。 Form1.cs using System; using Syste...

       复选框主要的属性是:Name、Text、Checked。

                 其中:

                       Name:表示这个组件的名称;

                         Text:表示这个组件的标题;

                     Checked:表示这个组件是否已经选中。

    Form1.cs

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace CheckBoxForm
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            /*
             *判断复选框是否被选中也使用Checked属性
             *界面上的每一个控件都继承自Control类,可以直接判断界面上的控件是否为复选框即可
             */
            private void button1_Click(object sender, EventArgs e)
            {
                string msg = "";
                foreach (Control c in Controls)
                { 
                   //判断控件是否为复选框控件
                    if (c is CheckBox)
                    {
                        if (((CheckBox)c).Checked)
                        {
                            msg = msg + " " + ((CheckBox)c).Text;
                        }
                    }
                }
                if (msg != "")
                {
                    MessageBox.Show("您选择的爱好是:" + msg, "提示");
                }
                else
                {
                    MessageBox.Show("您没有选择爱好", "提示");
                }
            }
        }
    }
    

    Program.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    
    namespace CheckBoxForm
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }
    

                                     

                                       

    展开全文
  • MFC使用复选框控件

    千次阅读 2012-11-26 12:27:09
    在开发过程中复选框控件的使用也比较广泛我这里为大家分享一下我使用复选框控件的一些技巧。   1.我们新建一个Dlg对话框MFC程序 2.拖入一个复选框控件,控件ID修改为IDC_CHECK 3.拉入一个按钮文本修改为“获取...
  • 复选框控件CheckBox(选择类控件)

    千次阅读 2014-04-28 13:00:43
    复选框控件CheckBox用来表示是否选取了某个选项条件,常用于为用户提供具有是/否或真/假的选项。 复选框控件的部分属性及说明 属性名 说明 Text 获取复选框控件的标题 ...
  • 重绘复选框控件

    千次阅读 2012-12-13 14:28:00
    复选框的绘制与按钮基本相同,因为复选框本质上还是按钮。与按钮稍有区别的地方是:复选框的状态需要手动维护。 我们可以定义一个名为m_nCheck 的成员变量,维护复选框状态。 主要代码如下: LRESULT CCheckBoxEx...
  • vs2008演示演示CheckBox复选框控件的使用实例
  • 使用VB.NET编写的复选框控件使用例程。 可以复选,最多同时打开4个窗体,并按顺序排列。
  • 主要介绍了python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例,需要的朋友可以参考下
  • js下拉复选框控件,超经典,用了就知道了。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,860
精华内容 22,744
关键字:

如何删除复选框控件