当前位置:网站首页>ToggleButton实现一个开关灯的效果
ToggleButton实现一个开关灯的效果
2022-07-06 09:16:00 【忘尘的世界】
问题咨询及项目源码下载请加群:
群名:IT项目交流群
群号:245022761
【实验目的】
1.掌握ToggleButton的使用方法。
【实验原理】
ToggleButton(开关按钮)继承自CompoundButton,是一个具有选中和未选中两种状态的按钮,并可为不同的状态设置不同的显示文本,常用于表示开/关场景中。
【实验内容】
本实验案例,通过ToggleButton实现一个开关灯的效果。效果如图1所示。
通过下面的开关按键,实现开关灯效果。
【练习步骤】
1.创建新项目
先建立一个空项目,如MyToggleButton项目,然后进行以下修改。
2.资源建设
(1)图片
从开、关灯的图片,存放在res/drawable目录下,文件名称分别为open.jpg、close.jpg。
3.设置主布局文件
修改主布局文件activity_main.xml,本例采用相对布局管理器,在其中添加ImageView、ToggleBuuton控件,并设置其相关属性,具体内容如下。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true"
android:id="@+id/img_light_on"
android:layout_marginTop="71dp"
android:src="@drawable/close"/>
<ToggleButton
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:id="@+id/toggleButton"
android:layout_marginTop="63dp"
android:layout_below="@+id/img_light_on"
android:text="ToggleButton"/>
</RelativeLayout>
4.编写代码
程序代码主要实现两个Button的事件处理方法,具体代码如下。
package com.example.mytogglebutton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.ToggleButton;
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private ToggleButton toggleButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView) findViewById(R.id.img_light_on);
toggleButton = (ToggleButton) findViewById(R.id.toggleButton);
toggleButton.setTextOn("关灯");
toggleButton.setTextOff("开灯");
toggleButton.setChecked(false);
toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
imageView.setImageResource(R.drawable.open);
}else {
imageView.setImageResource(R.drawable.close);
}
}
});
}
}
5.验证效果
编译运行,可通过关灯/开关按钮,实现开关灯效果,效果如图1所示。
1.51单片机学习整理
基于51单片机的智能光控路灯 :https://download.csdn.net/download/qq_37037348/11071869
基于51单片机超声波测距(内含源程序,原理图及PCB源文件):https://download.csdn.net/download/qq_37037348/11071866
基于51单片机的智能安防报警系统:https://download.csdn.net/download/qq_37037348/11071865
基于51单片机模块化编程模块 (红外、液晶显示屏、温湿度等传感器模块化)
:https://download.csdn.net/download/qq_37037348/11053222
基于51单片机pwm控制的呼吸灯程序
https://download.csdn.net/download/qq_37037348/11053195
51单片机与上位机串口通信实例包含详细讲解的完整代码
https://download.csdn.net/download/qq_37037348/11053164
基于51单片机的直交流电压表仿真 (详细代码实现,设计讲解)
https://download.csdn.net/download/qq_37037348/11053145
基于51单片机胸牌 详细代码实现,设计讲解)
https://download.csdn.net/download/qq_37037348/11053125
基于51单片机3x4按键拨号 (详细代码实现,设计讲解)
https://download.csdn.net/download/qq_37037348/11053093
基于51单片机拨号 (详细代码实现,设计讲解)
https://download.csdn.net/download/qq_37037348/11053090
基于51单片机警灯系统设计(详细代码实现,设计讲解)
https://download.csdn.net/download/qq_37037348/11053086
基于51单片机点亮一个小灯(详细代码实现,设计讲解,学习51基础实验)
https://download.csdn.net/download/qq_37037348/11053084
基于51单片机开发的排球计时器,附有详细注释讲解,为大家提供最真心的帮助
https://download.csdn.net/download/qq_37037348/11053024
基于51单片机的音乐播放器,源码详细注释
https://download.csdn.net/download/qq_37037348/11053022
2.Android 开发学习整理:
Android-serialport 手机App串口通信代码实现:
https://download.csdn.net/download/qq_37037348/11050521
Android-serialport 手机App网络通信实例代码实现:
https://download.csdn.net/download/qq_37037348/11050516
Android 第一个App详细教程、基础实验 :
https://download.csdn.net/download/qq_37037348/11050515
3.计算机视觉(深度学习、神经网络的学习)
feature extraction(深度学习,特征提取,神经网络:https://download.csdn.net/download/qq_37037348/11065968
feature extraction(深度学习,特征提取,神经网络多种训练模型详细实现):
https://download.csdn.net/download/qq_37037348/11065974
欢迎大家加入学习项目交流,为大家分享各类个人学习项目及学习资料,互相交流互相学习。
问题咨询及项目源码下载请加群:
群名:IT项目交流群
群号:245022761
边栏推荐
- 使用lambda在循环中传参时,参数总为同一个值
- 数据库面试常问的一些概念
- Hutool中那些常用的工具类和方法
- ES6 promise object
- SQL time injection
- 【yarn】CDP集群 Yarn配置capacity调度器批量分配
- Detailed explanation of express framework
- MySQL START SLAVE Syntax
- Mtcnn face detection
- PHP - whether the setting error displays -php xxx When PHP executes, there is no code exception prompt
猜你喜欢
Cookie setting three-day secret free login (run tutorial)
Double to int precision loss
AcWing 1298. Solution to Cao Chong's pig raising problem
Software I2C based on Hal Library
Mtcnn face detection
2019腾讯暑期实习生正式笔试
Word typesetting (subtotal)
MySQL and C language connection (vs2019 version)
2019 Tencent summer intern formal written examination
Pytoch Foundation
随机推荐
Password free login of distributed nodes
encoderMapReduce 随手记
Machine learning notes week02 convolutional neural network
Punctual atom stm32f103zet6 download serial port pin
互联网协议详解
[Kerberos] deeply understand the Kerberos ticket life cycle
Mtcnn face detection
PHP - whether the setting error displays -php xxx When PHP executes, there is no code exception prompt
[BSidesCF_2020]Had_a_bad_day
ES6 Promise 对象
搞笑漫画:程序员的逻辑
Cookie setting three-day secret free login (run tutorial)
分布式節點免密登錄
[Blue Bridge Cup 2017 preliminary] buns make up
About string immutability
Using LinkedHashMap to realize the caching of an LRU algorithm
[Presto] Presto parameter configuration optimization
Solve the problem of installing failed building wheel for pilot
yarn安装与使用
[NPUCTF2020]ReadlezPHP