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 ...
随机推荐
- cg语言学习&&阳春白雪GPU编程入门学习
虽然所知甚少,但康大的<GPU编程与Cg编程之阳春白雪下里巴人>确实带我入了shader的门,在里面我第一次清晰地知道了“语义”的意思,非常感谢. 入门shader,我觉得可以先读3本书: ...
- 手把手教你 在Pytorch框架上部署和测试 关键点人脸检测项目DBFace,成功实现人脸检测效果
这期教向大家介绍仅仅 1.3M 的轻量级高精度的关键点人脸检测模型DBFace,并手把手教你如何在自己的电脑端进行部署和测试运行,运行时bug解决. 01. 前言 前段时间DBFace人脸检测库横空出 ...
- H5选择器
1.标签选择器 注意点:1. 标签选择器选中当前所有的标签,而不能单独选择某个标签 2.标签选择器不无多深都能被选中 3.只要是HTML中的标签就可以作为表亲啊选择器(h/a/img/ul/o ...
- Composer 包版本的范围指定(版本约束)
1. 包版本范围指定(自动下载版本约束范围中的最新版) 名称 实例 说明 不指定版本 根据当前Path环境变量中的php版本下载最合适的最新版 确切的版本 6.0.1 指定下载的具体版本号 范围 &g ...
- 使用镜像安装cygwin、gcc并配置CLion IDE -2020.09.12
使用镜像安装cygwin.gcc并配置CLion IDE -2020.09.12 Cygwin 官网:http://www.cygwin.com/ 下载64bit安装器,并打开选择next 尽量不要装 ...
- Appium之启动第一个App
搭建appium自动化环境真是各种问题呀. 如何启动在真机上启动App? 执行操作:操作Android真机上打开手机淘宝app,并搜索“熊猫”. 脚本源码如下: from appium import ...
- Node.js连接MongoDB数据库
首先要启动MongoDB服务器 先找到你的mongoDb安装目录,我的如下:就在bin文件夹下创建一个data文件夹,data内包含两个空文件夹,如下: 接着回到bin文件夹处,按住shift键,右击 ...
- oracle之三手工完全恢复
手工完全恢复 3.1 完全恢复:通过备份.归档日志.current log ,将database恢复到failure 前的最后一次commit状态. 3.2 完全恢复的步骤 1)restore: OS ...
- oracle之二ASM 管理
Oracle ASM 管理(PPT-II:602-636) 16.1 什么是ASM 自动存储管理即ASM(Automatic Storage Management),是Oracle提供的一项管理磁盘的 ...
- dom:文档对象模型,提供的api去操作页面上的元素
dom对象通过html标签转义成了文档操作对象