• 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在白天和夜晚之间的切换。

    效果:

  • 相关阅读:
    【转】清理vs2008中的最近打开项目
    GridView的RowCommand事件传两个或以上参数
    ASP.NET中获取DataList中的控件
    判断导入的Excel中的数据
    ASP.NET中获取GridView中的控件
    Oracle拼接序列
    asp.net常用到的字符串处理
    文本框只能输入数字代码
    Tomcat多域名,虚拟目录配置
    Windows2008 部署tomcat后,局域网访问不了的问题
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5401697.html
Copyright © 2020-2023  润新知