Android实现时钟特效
时间:2022-07-27
本文章向大家介绍Android实现时钟特效,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例为大家分享了Android实现时钟特效的具体代码,供大家参考,具体内容如下
效果展示:
功能介绍:
如果您想换一张背景图,可以点击左下角按按钮切换背景图片。 如果您不想看见右上方的日期,可以点击它,他就会随即隐藏。如果你想 再次查看,请点击左下角切换壁纸按钮他就会被再次展示。
Demo 下载地址:
点击此处跳转:AndroidClockDemo
部分代码展示:
mainActivity部分:
实现切换,获得事件并显示等功能。
public class MainActivity extends AppCompatActivity {
private int[] imageIds = new int[]{
R.drawable.bac_1,
R.drawable.bac_2,
R.drawable.bac_3,
R.drawable.bac_4
};
private int num = 1; //num用于确定背景图
private boolean flagI = true;//i 用于控制日期显隐
private ImageView imageView;
private TextView textView;
private TextView textViewDate;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");// HH:mm:ss
//获取当前时间
Date date = new Date(System.currentTimeMillis());
textView.setText("" + simpleDateFormat.format(date));
simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");// HH:mm:ss
textViewDate.setText("" + simpleDateFormat.format(date));
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
transparency();//系统状态栏透明
textView = (TextView) findViewById(R.id.txt);
imageView = (ImageView) findViewById(R.id.background);
textViewDate = (TextView) findViewById(R.id.date);
refreshTime();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
//事件刷新线程
private void refreshTime(){
new Thread(){//每秒更新时间
@Override
public void run() {
while (true){
Message meg = new Message();
handler.sendMessage(meg);
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
//日期显隐点击事件
public void show(View view){
if(flagI) {
textViewDate.setVisibility(View.GONE);
flagI = false;
}//重新显现方法在背景按钮上
}
//悬浮按钮 更换背景
public void change(View view){
imageView.setImageResource(imageIds[num++]);
num %= 4;
textViewDate.setVisibility(View.VISIBLE);
flagI = true;
}
//设置系统菜单为透明
private void transparency(){
if (Build.VERSION.SDK_INT = 21) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助。
- (54) 剖析Collections - 设计模式 / 计算机程序的思维逻辑
- Django 博客教程(三):创建应用和编写数据库模型
- package-info.java文件详解
- 在Spring下集成ActiveMQ
- Java中只有按值传递,没有按引用传递!
- 我是如何使用Python来自动化我的婚礼的
- left join 过滤条件写在on后面和写在where 后面的区别
- 如何在大量jar包中搜索特定字符
- sql自连接经典示例
- astyle 使用说明
- Spring AOP 实现原理与 CGLIB 应用
- Django 博客教程:建立django工程(连载二)
- 使用python实现后台系统的JWT认证
- (65) 线程的基本概念 / 计算机程序的思维逻辑
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Bytom侧链Vapor源码浅析-节点出块过程
- Kubernetes Pod OOM 排查日记
- Netty之旅:你想要的NIO知识点,这里都有!
- (数据科学学习手札92)利用query()与eval()优化pandas代码
- Spring Boot 集成 Elasticsearch 实战
- Python之错误和异常、模块(基础系列第四篇)
- Spark存储Parquet数据到Hive,对map、array、struct字段类型的处理
- 为什么这条异常没有上报? HTTP 429
- 三问Spring事务:解决什么问题?如何解决?存在什么问题?
- 从 OAuth2 服务器获取授权授权
- NHibernate 代码映射实体类
- 使用 Castle Windsor 实现 Web API 依赖注入
- SparkSQL与Hive metastore Parquet转换
- Spark中广播变量详解以及如何动态更新广播变量
- 按需加载 AngularJS 的 Controller