物联网大赛 - Android学习笔记(二)Andriod 应用界面编程
学习目标:
Android的程序界面和View组件
View组件和ViewGroup组件
常见的布局管理器
文本框组件TextView和EditView
按钮组件Button 和ImageButton
特殊按钮RidoButton、CheckBox
事件显示组件AnalogClock与DigitalClock
使用AlertDialog创建弹窗
Taost创建提示
使用Notification发送全局通知
一、概念:
Android应用开发中需要友好的图形界面,而android提供了丰富的UI组件,开发者需要使用这些单独的组件组成完美的UI界面
二、使用XML文件布局UI界面
Android推荐使用XML布局视图,可以达到分离代码和视图原则。
在res/layout目录下定义任意一个xml文件,R.java会自动收录布局资源。设置activity显示视图。
setContentView(R.layout.<资源文件名称>);
注:当布局多个UI组件时,都可以为该UI组件指定android:id属性,在代码中访问
findViewById(R.id.<资源文件名称>);
在代码中获得UI组件之后:就可以通过代码控制UI组件的外观行为,包括组件的事件监听等等
实践:自定义一个UI界面
1、在Mainfest.xml文件中注册activity
<!--注册Activity-->
<activity android:name=".Infomation"></activity>
2、布局对应的UI视图文件
案例:设置背景图片轮播
//定义所有的轮播图片
int[] images =new int[]{
R.mipmap.img_01,R.mipmap.img_02,R.mipmap.img_03};
//定义初始下标为0
int CurrentIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_infomation);
//获取ImageView
final ImageView iv = (ImageView) findViewById(R.id.showView);
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(CurrentIndex >=2){
CurrentIndex=-1;
}
//改变ImageView中的Src属性值
iv.setImageResource(images[++CurrentIndex]);
}
});
}
案例:通过单选按钮和复选框按钮获取用户信息
RadioButton 单选框、CheckBox复选框,单选框和复选框会多出指定android:checked 属性,该属性指定是否可以被选中。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical">
<android.support.v7.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="30dp"
android:gravity="center"
android:text="选择相关信息" />
<AutoCompleteTextView
android:layout_width="wrap_content"
android:id="@+id/showPersonInfo"
android:layout_height="wrap_content" />
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rg">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/man"
android:checked="true"
android:text="男" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/women"
android:text="女" />
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="红色" />
<android.support.v7.widget.AppCompatCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="蓝色"/>
</LinearLayout>
实践案例:计时器定时时钟
DigitalClock和AnalogClock都可以显示当前时间,不同的前者是数字时钟,可以显示当前秒数,后者是模拟时钟,不会显示当前秒数。Android中提供了Chronometer计时器
属性如下:基本属性如下
setBase()设置计时器开始时间
Start()开始计时
Stop()停止计时
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//设置计时开始时间,获取系统时间
ch.setBase(SystemClock.elapsedRealtime());
//启动计时
ch.start();
}
});
//停止计时
btnEnd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ch.stop();
}
});
用户选择日期和时间DatePicker和TimePicker
用户选择日期,并为日期选择绑定监听器。
ListView列表视图
ListView是常用的列表控件,以垂直列表的形式显示数据
常用属性
public class ListDate extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_date);
//找到ListView控件
ListView lv = (ListView)findViewById(R.id.List_it);
//创建数组数据
String[] arr = {"李白","杜甫","杜牧"};
//将数组进行包装
ArrayAdapter<String> adapter = new ArrayAdapter<String>(ListDate.this,android.R.layout.simple_list_item_1,arr);
lv.setAdapter(adapter);
}
}
对话框使用:Toast
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_taost_test);
Button btn = (Button) findViewById(R.id.toastTest);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.LENGTH_SHORT显示时间长短
//show()调用显示方法
Toast.makeText(TaostTest.this,"弹窗设置",Toast.LENGTH_SHORT).show();
}
});
}
物联网大赛 - Android学习笔记(二)Andriod 应用界面编程的更多相关文章
- 物联网大赛 - Android学习笔记(三)Android 事件处理
学习目标: 了解事件处理概念 监听事件处理模型 事件与事件监听接口 实现事件监听方式 回调事件处理模型 常见的事件回调方法 Handler类功能与用法 Handler更新程序界面 一.监听概念 再用户 ...
- 物联网大赛 - Android学习笔记(一) Android概念
一.Android 概念 Android是开放式的手机和电脑操作系统,是基于Linux系统做的上层开发. android可以做些什么? Android可以开发各种手机应用APP,也可以开发车载系统等, ...
- 学习笔记(二)--->《Java 8编程官方参考教程(第9版).pdf》:第七章到九章学习笔记
注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法者自负一切 ...
- Android学习笔记二之初始Activity
初识Activity,跟着教程学习敲了一遍这一章的内容,下面根据目录结构总结知识点: 一.活动是什么 上篇博文中我们提到了Android四大组件,其中有一个Activity,我们将之称为活动.活动是最 ...
- android学习笔记二、Activity深入学习
一.创建和使用: 1.Activity是android的四大组件之一,需要继承Activity并在清单文件中进行声明才能使用.没有声明则报错. 2.启动Activity是通过Intent,有两种方式: ...
- android学习笔记二
ADT(Android Development Tools)安卓开发工具. android项目目录简介 ==> src==>源代码文件 res==>资源文件 AndroidManif ...
- Android 学习笔记二 自定义按钮形状 颜色 点击渐变
问题:自定义按钮的颜色 形状弧度 渐变效果 1.新建自定义属性button_login.xml (借鉴某大神) <?xml version="1.0" encoding=& ...
- Android学习笔记二:activity的理解
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7513290.html 一:activity定义了app的页面 一个app有很多个页面组成,一个页面其实就是一个 ...
- android学习笔记二:Intent
1.Intent作用 协助完成各个组建间的通信.如activity间.启动service.Broadcast. 2.Intent构成 1.Componet name:要启动的目的组建. 2.Actio ...
随机推荐
- 优化 if-else 代码的 8 种方案
前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案. 方案. 优化方案一:提前return,去除不必要的el ...
- redis入门到精通系列(二):redis操作的两个实践案例
在前面一篇博客中我们已经学完了redis的五种数据类型操作,回顾一下,五种操作类型分别为:字符串类型(string).列表类型(list).散列类型(hash).集合类型(set).有序集合类型(so ...
- Spring Cloud中使用Eureka
一.创建00-eurekaserver-8000 (1)创建工程 创建一个Spring Initializr工程,命名为00-eurekaserver-8000,仅导入Eureka Server依赖即 ...
- 剖析虚幻渲染体系(13)- RHI补充篇:现代图形API之奥义与指南
目录 13.1 本篇概述 13.1.1 本篇内容 13.1.2 概念总览 13.1.3 现代图形API特点 13.2 设备上下文 13.2.1 启动流程 13.2.2 Device 13.2.3 Sw ...
- Redis的一致性哈希算法
一.节点取余 根据redis的键或者ID,再根据节点数量进行取余. key:value如下 name:1 zhangsna:18:北京 对name:1 进行hash操作,得出来得值是242342345 ...
- 如何推翻JAVA的统治地位
"java越来越过份了."php狠狠的说,他转头看着C:"C哥,您可是前辈,java最近砸了我不少场子,你老再不出来管管,我怕他眼里就没有您了啊." C哥吸烟, ...
- Linux服务加入systemctl|service管理
一.加入systemctl 1.添加 vim /usr/lib/systemd/system/user_timejob.service # copy to /usr/lib/systemd/syste ...
- Python3元组的简介和遍历
一.Python3元组简介 1.1.如何创建一个元组 ''' Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号(),列表使用方括号[]. 元组创建很简单,只需要在括号中添 ...
- 第44篇-为native方法设置解释执行入口
对于Java中的native方法来说,实际上调用的是C/C++实现的本地函数,由于可能会在Java解释执行过程中调用native方法,或在本地函数的实现过程中调用Java方法,所以当两者相互调用时,必 ...
- YC-Framework版本更新:V1.0.3
分布式微服务框架:YC-Framework版本更新V1.0.3!!! 本次版本V1.0.3更新 集成分布式事务Seata: 集成分布式事务Tx-LCN: 集成Kafka: 集成RocketMQ: 集成 ...