1、倒计时APP

运行图示:**

xml代码

java代码

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import java.util.Timer;

import java.util.TimerTask;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private EditText input_time;

private Button getTime,startTime,stopTime;

private TextView time;

private int i = 0;

private Timer timer = null;

private TimerTask task = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate( savedInstanceState );

setContentView( R.layout.activity_main );

initView();

}

private void initView(){

input_time = (EditText) findViewById( R.id.input_time );

getTime = (Button) findViewById( R.id.get_time );

startTime = (Button) findViewById( R.id.start_time );

stopTime = (Button) findViewById( R.id.stop_time );

time = (TextView) findViewById( R.id.time );

getTime.setOnClickListener( this );

stopTime.setOnClickListener( this );

startTime.setOnClickListener( this );

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.get_time:

time.setText( input_time.getText().toString() );

i = Integer.parseInt( input_time.getText().toString() );

break;

case R.id.start_time:

StartTime();

break;

case R.id.stop_time:

StopTime();

break;

}

}

private Handler mHandler = new Handler(){

public void handleMessage(Message msg) {

time.setText(msg.arg1+"");

StartTime();

};

};

public void StartTime(){

timer = new Timer();

task = new TimerTask() {

@Override

public void run() {

i--;

Message message = mHandler.obtainMessage();

message.arg1 = i;

mHandler.sendMessage( message );

}

};

timer.schedule( task, 1000 );

}

public void StopTime(){

timer.cancel();

}

}

2、画板APP

xml代码

java代码1

package com.example.drawingboard;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

public class MainActivity extends AppCompatActivity {

private Button btn;

private MyView view;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate( savedInstanceState );

setContentView( R.layout.activity_main );

btn = (Button)findViewById( R.id.btn );

view = (MyView)findViewById( R.id.draw ) ;

btn.setOnClickListener( new View.OnClickListener() {

@Override

public void onClick(View v) {

view.clear();

}

} );

}

}

java代码2

package com.example.drawingboard;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.util.AttributeSet;

import android.view.MotionEvent;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.View;

public class MyView extends SurfaceView implements SurfaceHolder.Callback, View.OnTouchListener {

private Paint p = new Paint();

private Path path = new Path();

public MyView(Context context, AttributeSet attrs) {

super(context, attrs);

getHolder().addCallback( this );

p.setColor( Color.RED );

p.setTextSize( 50 );

p.setStyle( Paint.Style.STROKE );

// p.setAntiAlias( true );

setOnTouchListener( this );

}

public void draw(){

Canvas canvas = getHolder().lockCanvas();

canvas.drawColor( Color.WHITE );

canvas.drawPath( path, p );

getHolder().unlockCanvasAndPost( canvas );

}

public void clear(){

path.reset();

draw();

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

draw();

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

}

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()){

case MotionEvent.ACTION_DOWN:

path.moveTo( event.getX(),event.getY() );

draw();

break;

case MotionEvent.ACTION_MOVE:

path.lineTo( event.getX(),event.getY() );

draw();

break;

}

return true;

}

}

android studio 倒计时,Android studio 学习3:实现倒计时、画板相关推荐

  1. 《Android Studio开发实战》学习(五) - 截图

    <Android Studio开发实战>学习(五) - 截图 背景 页面布局 布局文件的编写 代码文件的编写 ImageView控件截图的原理 运行结果 背景 在这里继续学习Android ...

  2. 《Android Studio开发实战》学习(二)- 聊天室

    <Android Studio开发实战>学习(二)- 聊天室 背景 聊天室布局文件的编写 聊天室代码文件的编写 运行结果 背景 在前一篇文章 1中实现了使用Android Studio开发 ...

  3. 《Android Studio开发实战》学习(一)- Hello World

    <Android Studio开发实战>学习(一)- Hello World 背景 Android Studio的安装 Android Studio的启动和运行 运行小应用Hello Wo ...

  4. 《Android Studio开发实战》学习(三)- 展示图片

    <Android Studio开发实战>学习(三)- 展示图片 背景 问题描述 将图片添加到Android Studio资源中 图像视图ImageView的使用 关闭APP中标题的显示 图 ...

  5. 《Android Studio开发实战》学习(六)- 下拉框

    <Android Studio开发实战>学习(六)- 下拉框 背景 下拉框Spinner的使用 数组适配器ArrayAdapter的使用 简单适配器SimpleAdapter的使用 布局文 ...

  6. android studio 远程调试,Unity3D学习笔记——Android远程真机调试(Unity Remote)

    前言:当使用Unity开发移动端的游戏,特别是使用到手机的传感器,如重力感应等,调试的时候,很麻烦, 因为每次都需要编译成APK后安装到手机中测试,而Unity Remote便能很好的解决这个问题,U ...

  7. 移动互联网开发入门Android Studio ,适合刚学习的

    目录 目录 1.创建Android的具体步骤 1.第一步创建项目 ​2.安装JDK,一直往下操作 ​3.创建虚拟机 4.编写与运行 LinearLayout 1.orientation的使用 ​2.g ...

  8. 使用Android Studio搭建Android集成开发环境

    一.Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境).它基于Intellij IDEA开发环境,旨 ...

  9. 使用Android Studio搭建Android集成开发环境(图文教程)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  10. android找不到符号_快速搭建Android开发环境——Android Studio(附ADB找不到设备)...

    由于毕设大概率最终要使用Android来实现,所以现在要开始学习一些Android开发基础了. 学习一门技术,最先要解决的问题就是开发环境的问题. 就如同两年前学java那样,在windows下配置环 ...

最新文章

  1. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(为域名申请SSl证书)
  2. 数据库授予用户增删改查的权限的语句_mysql创建本地用户及赋予数据库权限的方法示例...
  3. 53_Auto-Encoders和Variational AutoEncoders(VAE)、PCA降维和Auto-Encoders降维的比较、Auto-Encoders变种、pytorch实现等
  4. IT与业务之间的鸿沟根源
  5. codeforces 884E Binary Matrix 并查集,滚动数组
  6. LeetCode 1796. 字符串中第二大的数字
  7. verilog时钟翻转怎么写_verilog实时可调时钟代码
  8. 404、500、502等HTTP状态码介绍
  9. flutter圆形动画菜单,Flow流式布局动画圆形菜单
  10. 【clickhouse】clickhouse kafka 引擎常见问题
  11. leetcode力扣347. 前 K 个高频元素
  12. bochs x86模拟器
  13. 微信安卓客户端逆向分析
  14. 基于CCS工程MSP430串口升级(一)
  15. 阿里云生活物联网平台搭建
  16. BeanUtils.populate(Object Bean,Map properties)
  17. Python采集--小说一键保存txt文本
  18. leetcode每日一题·救生艇问题(Python)
  19. 什么软件可以搜python题_Python答题神器下载-Python百万答题软件 _5577安卓网
  20. 使用VB绘制sin函数曲线

热门文章

  1. 一次哔哩哔哩面试经历,看这一篇就够了!
  2. 88---Python 以符号的方式给出积分表达式,类似Mathematics
  3. ISP AWB自动白平衡包含一段简单的色温估计进行白平衡调节的程序
  4. 【基金学习】小白基金学习记录(一)
  5. One PUNCH Man——降维
  6. 6.在SAP Web上实现Punchout目录采购(第一部分)
  7. 003云数据中心基础原理笔记
  8. CPU是如何制造出来的(附高清全程图解)
  9. 神马笔记 版本1.8.0——删除笔记/文件夹·代码篇
  10. Linux设备模型剖析系列一(基本概念、kobject、kset、kobj_type)