android studio 倒计时,Android studio 学习3:实现倒计时、画板
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:实现倒计时、画板相关推荐
- 《Android Studio开发实战》学习(五) - 截图
<Android Studio开发实战>学习(五) - 截图 背景 页面布局 布局文件的编写 代码文件的编写 ImageView控件截图的原理 运行结果 背景 在这里继续学习Android ...
- 《Android Studio开发实战》学习(二)- 聊天室
<Android Studio开发实战>学习(二)- 聊天室 背景 聊天室布局文件的编写 聊天室代码文件的编写 运行结果 背景 在前一篇文章 1中实现了使用Android Studio开发 ...
- 《Android Studio开发实战》学习(一)- Hello World
<Android Studio开发实战>学习(一)- Hello World 背景 Android Studio的安装 Android Studio的启动和运行 运行小应用Hello Wo ...
- 《Android Studio开发实战》学习(三)- 展示图片
<Android Studio开发实战>学习(三)- 展示图片 背景 问题描述 将图片添加到Android Studio资源中 图像视图ImageView的使用 关闭APP中标题的显示 图 ...
- 《Android Studio开发实战》学习(六)- 下拉框
<Android Studio开发实战>学习(六)- 下拉框 背景 下拉框Spinner的使用 数组适配器ArrayAdapter的使用 简单适配器SimpleAdapter的使用 布局文 ...
- android studio 远程调试,Unity3D学习笔记——Android远程真机调试(Unity Remote)
前言:当使用Unity开发移动端的游戏,特别是使用到手机的传感器,如重力感应等,调试的时候,很麻烦, 因为每次都需要编译成APK后安装到手机中测试,而Unity Remote便能很好的解决这个问题,U ...
- 移动互联网开发入门Android Studio ,适合刚学习的
目录 目录 1.创建Android的具体步骤 1.第一步创建项目 2.安装JDK,一直往下操作 3.创建虚拟机 4.编写与运行 LinearLayout 1.orientation的使用 2.g ...
- 使用Android Studio搭建Android集成开发环境
一.Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境).它基于Intellij IDEA开发环境,旨 ...
- 使用Android Studio搭建Android集成开发环境(图文教程)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- android找不到符号_快速搭建Android开发环境——Android Studio(附ADB找不到设备)...
由于毕设大概率最终要使用Android来实现,所以现在要开始学习一些Android开发基础了. 学习一门技术,最先要解决的问题就是开发环境的问题. 就如同两年前学java那样,在windows下配置环 ...
最新文章
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(为域名申请SSl证书)
- 数据库授予用户增删改查的权限的语句_mysql创建本地用户及赋予数据库权限的方法示例...
- 53_Auto-Encoders和Variational AutoEncoders(VAE)、PCA降维和Auto-Encoders降维的比较、Auto-Encoders变种、pytorch实现等
- IT与业务之间的鸿沟根源
- codeforces 884E Binary Matrix 并查集,滚动数组
- LeetCode 1796. 字符串中第二大的数字
- verilog时钟翻转怎么写_verilog实时可调时钟代码
- 404、500、502等HTTP状态码介绍
- flutter圆形动画菜单,Flow流式布局动画圆形菜单
- 【clickhouse】clickhouse kafka 引擎常见问题
- leetcode力扣347. 前 K 个高频元素
- bochs x86模拟器
- 微信安卓客户端逆向分析
- 基于CCS工程MSP430串口升级(一)
- 阿里云生活物联网平台搭建
- BeanUtils.populate(Object Bean,Map properties)
- Python采集--小说一键保存txt文本
- leetcode每日一题·救生艇问题(Python)
- 什么软件可以搜python题_Python答题神器下载-Python百万答题软件 _5577安卓网
- 使用VB绘制sin函数曲线
热门文章
- 一次哔哩哔哩面试经历,看这一篇就够了!
- 88---Python 以符号的方式给出积分表达式,类似Mathematics
- ISP AWB自动白平衡包含一段简单的色温估计进行白平衡调节的程序
- 【基金学习】小白基金学习记录(一)
- One PUNCH Man——降维
- 6.在SAP Web上实现Punchout目录采购(第一部分)
- 003云数据中心基础原理笔记
- CPU是如何制造出来的(附高清全程图解)
- 神马笔记 版本1.8.0——删除笔记/文件夹·代码篇
- Linux设备模型剖析系列一(基本概念、kobject、kset、kobj_type)