本文实例为大家分享了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); } } }