• Android 多状态按钮ToggleButton


    1.什么是ToggleButton
    ToggleButton有两种状态:选中和未选中状态
    并且需要为不同的状态设置不同的显示文本
    2.ToggleButton属性
    android:checked="true"
    android:textOff="关"
    android:textOn="开"

    使用ToggleButton实现开关效果
    默认情况下ToggleButton的checked属性为false。
    将两张图片放入drawable(-hdmi)目录下。
    通过ToggleButton的setOnCheckedChangeListener()方法监听toggleButton的状态。
    重写onCheckedChanged()方法。
    如果toggleButton被点击了,显示白天和其对应的图片;如果toggleButton没有被点击,显示晚上和其对应的图片。
    通过imageView.setBackgroundResource()方法设置图片的背景颜色。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
    
        <ToggleButton
            android:textOn="白天"
            android:textOff="夜晚"
            android:id="@+id/toggleButton1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            />
    
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/moon" />
    
    </LinearLayout>
    activity_main.xml
    package com.example.togglebutton;
    
    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;
    import android.widget.CompoundButton;
    import android.widget.CompoundButton.OnCheckedChangeListener;
    import android.widget.ImageView;
    import android.widget.ToggleButton;
    
    public class MainActivity extends ActionBarActivity {
    
        private ToggleButton toggleButton;
        private ImageView imageView;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            toggleButton = (ToggleButton) findViewById(R.id.toggleButton1);
            imageView = (ImageView) findViewById(R.id.imageView1);
            
            toggleButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    if (isChecked) 
                        imageView.setBackgroundResource(R.drawable.sun);
                    else
                        imageView.setBackgroundResource(R.drawable.moon);
                }
                
            });
        }
    }
    MainActivity.java

    实现的效果是通过点击toggleButton可以实现imageView在白天和夜晚之间的切换。

    效果:

  • 相关阅读:
    [ios] 响应上下左右滑动手势
    [ios]字符串转化成NSDate类型 计算与当前时间的相差 月数 天数 【转】
    [ios] NSSet,NSMutableSet[zhuan]
    [ios] 如何让xcode自动检查内存泄露 【转】
    iOS 使用Quartz 2D画虚线 【转】
    [ios]设置表格单元格交替背景 【转】
    [ios] IOS文件操作的两种方式:NSFileManager操作和流操作【转】
    [ios] 自定义UIAlertView样式,实现可替换背景和按钮 【转】
    [ios]上传应用程序到app store 【转】
    [ios] iOS中arc的设置与使用
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5401697.html
Copyright © 2020-2023  润新知