Android高级控件(下)
计时器(Chronometer)
getBase() 基准时间
setFormat() 设置显示格式
start() 开始计时
stop() 停止计时
setOnChronometerListener 计时改变的监听事件
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:layout_width="fill_parent"
5 android:orientation="vertical"
6 android:layout_height="fill_parent">
7 <Chronometer
8 android:id="@+id/tmd"
9 android:layout_width="wrap_content"
10 android:layout_height="wrap_content"/>
11 <LinearLayout
12 android:orientation="horizontal"
13 android:layout_width="fill_parent"
14 android:layout_height="fill_parent">
15 <Button
16 android:id="@+id/btStart"
17 android:layout_width="wrap_content"
18 android:layout_height="wrap_content"
19 android:text="开始计时"/>
20 <Button
21 android:id="@+id/btStop"
22 android:layout_width="wrap_content"
23 android:layout_height="wrap_content"
24 android:text="停止计时"/>
25 </LinearLayout>
26 </LinearLayout>
package come.waas; import android.app.Activity;
import android.app.Service;
import android.os.Bundle;
import android.os.SystemClock;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer; public class timer extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timer);
Button bt1 = (Button)findViewById(R.id.btStart);
Button bt2 = (Button)findViewById(R.id.btStop);
final Chronometer ch = (Chronometer)findViewById(R.id.tmd);//获得震动服务
final Vibrator b = (Vibrator) getApplication()
.getSystemService(
Service.VIBRATOR_SERVICE);//震动
bt1.setOnClickListener(new OnClickListener() { public void onClick(View v) {
ch.start();//开始计时
b.vibrate(new long[]{1000,1000,1000,2000}//震动频率
, 0);
}
}); bt2.setOnClickListener(new OnClickListener() { public void onClick(View v) {
ch.stop();//结束计时
ch.setBase(SystemClock.elapsedRealtime());//复位
}
});
}
}
TabHost布局
TabActivity类常用方法
getTabHost() 获取对象
Layoutinflater类常用方法
inflate(布局管理器ID,组件容器、组件参数,True)
LayoutInflater from() 从指定容器之中获得LayoutInflater对象
TabHost.TabSpec
setindicator() 设置一个Tab
setContent 设置要显示的组件ID
package come.waas; import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec; public class lay extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();//创建Tabhost对象
LayoutInflater.from(this).
inflate(R.layout.lay,
tabHost.getTabContentView(),
true);
TabSpec s1 = tabHost.newTabSpec("tab1")//设置标签的ID
.setIndicator("选项一")//设置标签的显示内容
.setContent(R.id.tva);//设置标签的标题
tabHost.addTab(s1); TabSpec s2 = tabHost.newTabSpec("tab2")
.setIndicator("选项二")
.setContent(R.id.tvb);
tabHost.addTab(s2); TabSpec s3 = tabHost.newTabSpec("tab3")
.setIndicator("选项三")
.setContent(R.id.tvc);
tabHost.addTab(s3); }
}
Android高级控件(下)的更多相关文章
- Android 高级控件(七)——RecyclerView的方方面面
Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...
- Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现
Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用L ...
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...
- Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现
Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...
- Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例
Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表, ...
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 现在的二维码可谓是烂大街了,到处都是二维码,什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 如今的二维码可谓是烂大街了.到处都是二维码.什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,添加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,添加和删除等功能 这个控件还是挺复杂的.也是项目中应该算是比較经常使用的了,所以写了一个小Demo来讲讲,主要是自己定义a ...
随机推荐
- 【JAVA】给大家推荐一道有意思的java测试题。你知道答案吗?
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, QQ986945193 公众号:程序员小冰 public class Test { /** * * ...
- 常用注解@Intdef与@Stringdef
1.优点 可以代替枚举,静态常量,可以让注解只在代码中存在,编译后就删除,可以省内存. 2.@IntDef 2.1 官网 https://developer.android.com/reference ...
- stf-多设备管理平台搭建
项目地址: https://github.com/openstf/stf 安装.使用命令 # 安装stfbrew install rethinkdb graphicsmagick zeromq pro ...
- Mac OSX上安装Nginx
1. 通过brew instal nginx安装 ==> Downloading https://homebrew.bintray.com/bottles/nginx-1.10.1.el_cap ...
- [BUUOJ记录] [GXYCTF2019]BabyUpload
CTF三大骗局:Baby Easy Funny,本题主要考察.htaccess文件解析文件.文件类型检测绕过 打开题目给了一个上传点,上传一个php文件看看过滤规则 “后缀名不能有ph”直接禁掉了所有 ...
- C#知识点:操作XML
XML是什么就不用说了文本标记语言. 主要纪录如何对XML文件进行增删改查. Xml的操作类都存在System.xml命名空间下面. 应用型的直接上代码 using System; using Sys ...
- [bash] 获取linux主机名,检视内中是否有特定字符串
代码: #!/bin/bash hostname=$(hostname) #调用hostname命令获取主机名放入变量hostname中 #echo $hostname if [ `echo ${ho ...
- 学习STM32的一些记录_创建库函数版本的工程
1.新建一个文件夹,用于存放MDK的工程所有文件.例如新建文件夹Template. 2.在Template下新建一个USER文件夹,用于存放工程. 3.打开MDK5,新建工程,目录在USER下. 4. ...
- 不懂 ZooKeeper?没关系,这一篇给你讲的明明白白
本来想系统回顾下 ZooKeeper的,可是网上没找到一篇合自己胃口的文章,写的差不多的,感觉大部分都是基于<从Paxos到ZooKeeper 分布式一致性原理与实践>写的,所以自己读了一 ...
- vsCode 设置vue文件标签内的style智能提示
VS Code 文件->首选项->设置 搜索:files.associations 点击在setting.json中编辑 最后一行添加配置: "files.association ...