Android学习笔记---第五天---基础UI组件---AnalogClock&TextClock&Chronometer(时钟与简单的计时器)
2016-04-07 18:28
489 查看
AnalogClock(模拟时钟)直接继承View类
TextClock(文本时钟)继承TextView类
Chronometer(计时器)继承TextView类 (点击此处查看TextView)
android:hand_huor //设置该时钟的时针图片
android:hand_minute //设置该时钟的分针图片
这个组件十分简单也没什么好说的
我们有时在命令界面要动态的显示一个系统时间时就会去不停的刷新一个输出的文字其实TextClock也是类似的;
android:format24Hour //设置为24小时时制
android: TimeZone //设置该时钟的时区
这里提醒一下TextClock只是用来显示系统时间的那么你修改Text属性当然没有作用
属性&方法
android:format //设置显示时间格式
setFormat(String format); //设置显示时间格式
setBase(long base); //设置计时器的起始时间
start(); //开始计时
stpo(); //停止计时
setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener);
//绑定一个事件监听器,当计时器改变时触发该监听器;
我的博客
TextClock(文本时钟)继承TextView类
Chronometer(计时器)继承TextView类 (点击此处查看TextView)
AnalogClock
AnalogClock是直接继承了View类,它用于显示一个模拟时钟但他没有秒钟;属性
android:dial //设置该时钟的表盘图片android:hand_huor //设置该时钟的时针图片
android:hand_minute //设置该时钟的分针图片
写一个模拟时钟
<AnalogClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:dial="@drawable/timg" />
效果图
这个组件十分简单也没什么好说的
TextClock
TextClock继承TextView所以他使用TextView的属性与方法。我们有时在命令界面要动态的显示一个系统时间时就会去不停的刷新一个输出的文字其实TextClock也是类似的;
属性
android:format12Hour //设置为12小时时制android:format24Hour //设置为24小时时制
android: TimeZone //设置该时钟的时区
这里提醒一下TextClock只是用来显示系统时间的那么你修改Text属性当然没有作用
写一个TextClock
<TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="yyyy年MM月dd日H:mma EEEE" android:drawableEnd="@drawable/ic_launcher" android:textSize="30dp" />
效果图
Chronometer
Chronometer这个类也继承TextView,他用于计时我们可以用它来实现一个秒表。属性&方法
android:format //设置显示时间格式setFormat(String format); //设置显示时间格式
setBase(long base); //设置计时器的起始时间
start(); //开始计时
stpo(); //停止计时
setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener);
//绑定一个事件监听器,当计时器改变时触发该监听器;
写一个计时器
<Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30dp" android:id="@+id/newChronometer"/>
newChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) {//这里chronometer是触发该监听器的对象 if(SystemClock.elapsedRealtime()- chronometer.getBase()>60000) { //SystemClock.elapsedRealtime()返回毫秒,自启动以来开始计时,包括睡眠的时间。 chronometer.stop();//停止计时 stopButton.setEnabled(false);//将stopButton设置为不可用 startButton.setEnabled(true);//将stopButton设置为可用 } } });
效果图
完整代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <AnalogClock android:layout_width="100sp" android:layout_height="wrap_content" android:dial="@drawable/timg" /> <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format12Hour="yyyy年MM月dd日H:mma EEEE" android:drawableEnd="@drawable/ic_launcher" android:textSize="30dp" /> <Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30dp" android:id="@+id/newChronometer"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/startButton" android:text="开始"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/stopButton" android:text="停止" android:enabled="false"/> </LinearLayout> </LinearLayout>
package cn.demail.myapplication; import android.os.Bundle; import android.os.SystemClock; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.Chronometer; public class Clocktmp extends AppCompatActivity{ private Button startButton,stopButton; private Chronometer newChronometer; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.clocklayout); startButton=(Button)findViewById(R.id.startButton); stopButton=(Button)findViewById(R.id.stopButton); newChronometer=(Chronometer)findViewById(R.id.newChronometer); newChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { if(SystemClock.elapsedRealtime()- chronometer.getBase()>60000) { chronometer.stop(); stopButton.setEnabled(false); startButton.setEnabled(true); } } }); startButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startButton.setEnabled(false); stopButton.setEnabled(true); newChronometer.setBase(SystemClock.elapsedRealtime()); newChronometer.start(); } }); stopButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startButton.setEnabled(true); stopButton.setEnabled(false); newChronometer.stop(); } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
我的博客
相关文章推荐
- 利用UEditor上传图片的注意点
- Access restriction: The type JFrame is not accessible due to restriction on required 错误
- UUID和UDID的常识
- UVA_10583_Ubiquitous Religions
- ios —— UIViewAdditions 布局坐标类库
- Ural 1183 Brackets Sequence(区间DP+记忆化搜索)
- UIColor *_color[5] UIColor数组
- DuiLib(7)——CTreeViewUI使用攻略
- requirejs加载css
- 79.iOS 设备的UI规范和iOS各控件默认高度
- 通用页面框架CmPage(一):简介
- [leetcode] 23. Merge k Sorted Lists
- EasyUI 使用心得
- Android gradle plugin和 Gradle版本关系\Gradle version 1.10 is required. Current version is 2.0
- Audio Session Programming Guide(官方文档翻译一)
- 深度评测xcgui(二)
- KVC中setValuesForKeysWithDictionary:
- iOS - UITextFieldKeyBoardPan为时间选择器
- 深入了解Volley如何执行一个Request的流程
- UE3 ExampleGame Android版无法运行解决方案