Android开发 ---基本UI组件2:图像按钮、单选按钮监听、多选按钮监听、开关
Android开发 ---基本UI组件2
1、activity_main.xml
描述:
定义一个按钮
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
android:onClick="test_2"/>
</LinearLayout>
2、MainActivity.java
描述:
页面跳转
package com.example.android_ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}public void test_2(View view){
Intent intent=new Intent(this,ButtonActivity.class);
startActivity(intent);
}
}
3、activity_button.xml


timg.jpg
描述:
1、定义一个图像按钮
android:src="@drawable/timg" 引用资源文件中的名为timg.jpg的图像
scaleType=“matrix” 保持原图大小、从左上角的点开始,以矩阵形式绘图。
scaleType=“fitXY” 将原图进行横方向(即XY方向)的拉伸后绘制的。
scaleType=“fitStart” 将原图沿左上角的点(即matrix方式绘图开始的点),按比例缩放原图绘制而成的。
scaleType=“fitCenter” 将原图沿上方居中的点(即matrix方式绘图第一行的居中的点),按比例缩放原图绘制而成的。
scaleType=“fitEnd” 将原图沿下方居中的点(即matrix方式绘图最后一行的居中的点),按比例缩放原图绘制而成的。
scaleType=“Center” 保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像。
scaleType=“centerCrop” 不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以填满
ImagView为目标,对原图进行裁剪)。
scaleType=“centerInside” 不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以显示
完整图片为目标,对原图进行缩放)。
2、定义一组单选按钮
RadioGroup组件和RadioButton组件进行结合设置单选按钮
android:checked="true" 表示默认选中
3、定义一组多选按钮
CheckBox组件用来设置多选按钮
4、定义一个开关
ToggleButton组件用来设置开关按钮
android:checked="true" 默认为开
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/activity_button"
android:layout_width="match_parent"
android:layout_height="match_parent"> <ImageButton
android:scaleType="fitXY"
android:background="@android:color/transparent"
android:src="@drawable/timg"
android:onClick="test_click"
android:layout_width="80dp"
android:layout_height="80dp" /> <RadioGroup
android:id="@+id/usexGroup"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/usex1"
android:text="男"
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RadioButton
android:id="@+id/usex2"
android:text="女"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RadioGroup> <TextView
android:text="用户爱好:"
android:textSize="30sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:id="@+id/ck_1"
android:text="体育"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/ck_2"
android:text="娱乐"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<CheckBox
android:id="@+id/ck_3"
android:text="睡觉"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<TextView
android:text="缓存图像"
android:textSize="30sp"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ToggleButton
android:checked="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
4、ButtonActivity.java
描述:
监听按钮选择改变事件
package com.example.android_ui; import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast; public class ButtonActivity extends Activity{
//获取多选按钮组件
private CheckBox ck1,ck2,ck3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button); ck1=(CheckBox)findViewById(R.id.ck_1);
ck2=(CheckBox)findViewById(R.id.ck_2);
ck3=(CheckBox)findViewById(R.id.ck_3);
//给每个多选按钮设置选择改变监听事件,即当该多选按钮被选中了就会被监听到
//onCheckedChange()方法在下面定义了,即将多选按钮传入到onCheckedChange()方法中,再将这个方法又传给setOnCheckedChangeListener()方法中
ck1.setOnCheckedChangeListener(onCheckedChange(ck1));
ck2.setOnCheckedChangeListener(onCheckedChange(ck2));
ck3.setOnCheckedChangeListener(onCheckedChange(ck3)); }
//定义一个点击图片按钮的事件方法,当点击图片按钮时,弹出Hello
public void test_click(View view){
Toast.makeText(this, "Hello", Toast.LENGTH_LONG).show();
}
//CheckBox多选按钮实现CompoundButton.OnCheckedChangeListener
//CompoundButton是一个状态切换控件,它只有两种状态,一种是被选中,一种是未被选中
//OnCheckedChangeListener是CompoundButton类中定义的一个抽象接口,接口中定义了一个onCheckedChange()方法,这个方法中需要传入一个参数
public CompoundButton.OnCheckedChangeListener onCheckedChange(final View view){
//实例化这个接口,并重写onCheckedChanged()方法
return new CompoundButton.OnCheckedChangeListener() {
@Override
//CompoundButton是一个状态切换控件,它只有两种状态,一种是被选中,一种是未被选中
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
//将上面传入进来的view强转成多选按钮,并实例化一个多选按钮
CheckBox cb=(CheckBox)view;
//判断传入进来的这个按钮是否被选中
if(cb.isChecked()) {
//判断ck1按钮的id是否和多选按钮中的一个id相等,如果相等则将这个相等的按钮的文本内容弹出来
if (view.getId() == ck1.getId()) {
//如果条件成立,则获取被选中按钮的文本内容,并转化为字符串弹出来
Toast.makeText(ButtonActivity.this, ck1.getText().toString(), Toast.LENGTH_LONG).show();
}
if (view.getId() == ck2.getId()) {
Toast.makeText(ButtonActivity.this, ck2.getText().toString(), Toast.LENGTH_LONG).show();
}
if (view.getId() == ck3.getId()) {
Toast.makeText(ButtonActivity.this, ck3.getText().toString(), Toast.LENGTH_LONG).show();
}
}
}
};
}
}
Android开发 ---基本UI组件2:图像按钮、单选按钮监听、多选按钮监听、开关的更多相关文章
- Android开发 ---基本UI组件8:九宫格布局、setOnItemClickListener()项被选中监听事件
效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...
- Android开发 ---基本UI组件3:单选按钮、多选按钮、下拉列表、提交按钮、重置按钮、取消按钮
Android开发 ---基本UI组件2 1.activity_main.xml 描述: 定义一个用户注册按钮 <?xml version="1.0" encoding=&q ...
- Android开发 ---基本UI组件4:拖动事件、评分进度条、圆圈式进度条、进度条控制
Android开发 ---基本UI组件4 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding=" ...
- Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮
效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...
- Android开发 ---基本UI组件6 :只定义一个listView组件,然后通过BaseAdapter适配器根据数据的多少自行添加多个ListView显示数据
效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...
- Android开发 ---基本UI组件7 :分页功能、适配器、滚动条监听事件
效果图: 1.activity_main.xml 描述: 定义了一个按钮 <?xml version="1.0" encoding="utf-8"?> ...
- Android开发---基本UI组件1:自动拨电话,自动上网,输入框不换行、只输数字、只输文本、只输密码
1.activity_main.xml 描述:构建一个按钮 <?xml version="1.0" encoding="utf-8"?> <L ...
- android开发之自定义组件
android开发之自定义组件 一:自定义组件: 我认为,自定义组件就是android给我们提供的的一个空白的可以编辑的图片,它帮助我们实现的我们想要的界面,也就是通过自定义组件我们可以把我们要登入的 ...
- ReactNative Android之原生UI组件动态addView不显示问题解决
ReactNative Android之原生UI组件动态addView不显示问题解决 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com ...
随机推荐
- 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形网格惰性加载节点
jQuery EasyUI 树形菜单 - 树形网格惰性加载节点 有时我们已经得到充分的分层树形网格(TreeGrid)的数据. 我们还想让树形网格(TreeGrid)按层次惰性加载节点. 首先,只加载 ...
- Android+Struts2实现简单的前后台交互--Android网络编程
1.下面测试截图,基本过程就是:点击按钮向服务器端发送请求,后台收到请求后给出返回的数据,前台只需要显示服务端数据就可以了.例子很简单能但引发很多思考,博主学了杂七杂八的,这又在来想杂学Android ...
- android--------内存泄露分析工具—Android Monitor
Android Studio 内置了四种性能监测工具Memory Monitor.Network Monitor.CPU Monitor.GPU Monitor,我们可以使用这些工具监测APP的状态, ...
- win10系统安装labelImg
网站:https://github.com/tzutalin/labelImg conda install pyqt=4 pyrcc4 -o resources.py resources.qrc py ...
- Spring Batch 基本的批处理指导原则
下面是一些关键的指导原则,可以在构批量处理解决方案可以参考: 请记住,通常皮脸处理体系结构将会影响在线应用的体系结构,同时反过来也是一样的.在你为批量任务和在线应用进行设计架构和环境的时候请尽可能的使 ...
- Spring配置表友好性优化思路
Spring配置表需要尽量保证对程序员的友好性,一下提供一种优化思路. 中途未保存,心态炸了,只贴图了,fuuuuuuuuuuuuuck 第一种(最烂,最不友好):以Json的格式保存在配置表中,程序 ...
- linux指令统计日志出现的次数
cat XXX.log|grep ''|grep '条件'| wc -l 单个条件统计 cat XXX.log|grep ''|grep '条件1'|grep '条件2'|grep '条件3' ...
- Spring + Mybatis项目实现数据库读写分离
主要思路:通过实现AbstractRoutingDataSource类来动态管理数据源,利用面向切面思维,每一次进入service方法前,选择数据源. 1.首先pom.xml中添加aspect依赖 & ...
- Beta阶段——第6篇 Scrum 冲刺博客
Beta阶段--第6篇 Scrum 冲刺博客 标签:软件工程 一.站立式会议照片 二.每个人的工作 (有work item 的ID) 昨日已完成的工作 人员 工作 林羽晴 完成了函数的编写,提供报表数 ...
- Python序列化-pickle和json模块
Python的“file-like object“就是一种鸭子类型.对真正的文件对象,它有一个read()方法,返回其内容.但是,许多对象,只要有read()方法,都被视为“file-like obj ...