本文实例介绍了Android如何画出触摸轨迹的方法,分享给大家供大家参考,具体内容如下

效果图:

实现代码:

package com.android.gameview5;

import android.app.Activity;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Path;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.SurfaceHolder;

import android.view.SurfaceHolder.Callback;

import android.view.SurfaceView;

import android.view.Window;

import android.view.WindowManager;

public class SurfaceViewActivity3 extends Activity {

public void onCreate(Bundle s){

super.onCreate(s);

//全屏显示

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(new MyView(this));

}

public class MyView extends SurfaceView implements Callback,Runnable{

public static final int TIME_IN_FRAME =50;

Paint mPaint = null;

Paint mTextPaint = null;

SurfaceHolder mSurfaceHolder = null;

boolean mRunning = false;

Canvas mCanvas = null;

private Path mPath;

private float mPosX,mPosY;

public MyView(Context context){

super(context);

this.setFocusable(true);

this.setFocusableInTouchMode(true);

mSurfaceHolder = this.getHolder();

mSurfaceHolder.addCallback(this);

mCanvas = new Canvas();

mPaint = new Paint();

mPaint.setColor(Color.BLACK);

mPaint.setAntiAlias(true);

mPaint.setStyle(Paint.Style.STROKE);

mPaint.setStrokeCap(Paint.Cap.ROUND);

mPaint.setStrokeWidth(6);

mPath = new Path();

mTextPaint = new Paint();

mTextPaint.setColor(Color.BLACK);

mTextPaint.setTextSize(15);

}

public boolean onTouchEvent(MotionEvent event){

int action = event.getAction();

float x = event.getX();

float y = event.getY();

switch(action){

case MotionEvent.ACTION_DOWN:

mPath.moveTo(x, y);

break;

case MotionEvent.ACTION_MOVE:

mPath.quadTo(mPosX, mPosY, x, y);

break;

case MotionEvent.ACTION_UP:

//mPath.reset();

break;

}

//记录当前触摸点得当前得坐标

mPosX = x;

mPosY = y;

return true;

}

private void onDraw(){

mCanvas.drawColor(Color.WHITE);

//绘制曲线

mCanvas.drawPath(mPath, mPaint);

mCanvas.drawText("当前触笔X:"+mPosX,0,20,mTextPaint);

mCanvas.drawText("当前触笔Y:"+mPosY,0,40,mTextPaint);

}

public void run() {

// TODO Auto-generated method stub

while(mRunning){

long startTime = System.currentTimeMillis();

synchronized(mSurfaceHolder){

mCanvas = mSurfaceHolder.lockCanvas();

onDraw();

mSurfaceHolder.unlockCanvasAndPost(mCanvas);

}

long endTime = System.currentTimeMillis();

int diffTime = (int) (endTime - startTime);

while(diffTime<=TIME_IN_FRAME){

diffTime =(int)(System.currentTimeMillis()-startTime);

Thread.yield();

}

}

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

// TODO Auto-generated method stub

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

mRunning = true;

new Thread(this).start();

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

// TODO Auto-generated method stub

mRunning = false;

}

}

}

以上就是Android轻松画出触摸轨迹的具体方法,希望对大家的学习有所帮助。

android运动轨迹怎么画,Android轻松画出触摸轨迹相关推荐

  1. android 画笔轨迹,Android中SurfaceView和view画出触摸轨迹

    一.引言 想实现一个空白的画板,上面可以画出手滑动的轨迹,就这么一个小需求.一般就来讲就两种实现方式,view或者surfaceview.下面看看两种是如何实现的. 二.实现原理 先简单说一下实现原理 ...

  2. android画布一闪一闪的,解决Android SurfaceView绘制触摸轨迹闪烁问题的方法

    本文分享了解决SurfaceView触摸轨迹闪烁问题的方法,供大家参考,具体内容如下 第一种解决SurfaceView触摸轨迹闪烁问题的方法: 由于SurfaceView使用双缓存机制,两张画布轮流显 ...

  3. android运动轨迹怎么画,Android 利用三阶贝塞尔曲线绘制运动轨迹的示例

    本篇文章主要介绍了Android 利用三阶贝塞尔曲线绘制运动轨迹的示例,分享给大家,具体如下: 实现点赞效果,自定义起始点以及运动轨迹 效果图: xml布局: xmlns:tools="ht ...

  4. android 字符画,抖音上很火的字符画 Android 实现 | 视频转换实现

    作者:Line_cut_feng 链接:https://www.jianshu.com/p/a14f1ac558e1 之前我推送过抖音上很火的字符画 Android 实现,当时文末:按说拿到ascii ...

  5. Android在图片画线(放大,旋转,平移后可继续正确画线,限制画线区域)

    最近因为公司业务需求,需要给学校的老师们做一个在手机和电脑上同步进行图片上画线批注的效果.刚开始在github上看了几天, 但跟我们要求吻合的开源项目几乎没有.最后只能自己来实现一个相应的功能,经过一 ...

  6. android画a4矩形,Android自定义View绘制原理:画多大?画在哪?画什么?(三)

    View绘制就好比画画,抛开Android概念,如果要画一张图,首先会想到哪几个基本问题: 画多大? 画在哪? 怎么画? Android绘制系统也是按照这个思路对View进行绘制,上面这些问题的答案分 ...

  7. android虚线边框_Android实现代码画虚线边框背景效果

    实现如下边框效果: 虚线画效果,可以使用Android中的xml来做.下面话不多说,直接上代码: android:id="@+id/coupon_popup" android:la ...

  8. 素描嘴巴注意这几个点,轻松画出头像神韵~

    素描嘴巴怎么画?这几点帮你轻松get素描嘴巴画法,很多小伙伴在学习美术的时候都会遇到各种问题今天美术集网校小编就带大家了解下素描嘴巴画法: 素描嘴巴注意这几个点,轻松画出头像神韵! 素描嘴巴注意这几个 ...

  9. Android百日程序:绘画程序-画手指路径

    本程序实现在一个画布中,用手指画图的效果. 需要使用的知识: 1 Canvas 画布,动态保存更新当前画面 2 Path 记录并画出手接触屏幕经过的路径 如下面效果图: 只需要按照默认设置新建一个项目 ...

最新文章

  1. 逆向建模软件介绍_逆向技术在2代机修理中的应用
  2. P3243-[HNOI2015]菜肴制作【拓扑排序,优先队列】
  3. C和汇编----字符串
  4. 流露人间的情回忆儿童节
  5. 应用软件更新提醒单页HTML网站源码
  6. spring cloud 启动bean 循环依赖问题记录
  7. 《如何搭建小微企业风控模型》第八节 反欺诈策略 节选
  8. 如何将一个String和多个String值进行比较
  9. 相机存储卡格式化了数据能恢复吗,相机储存卡数据误删如何恢复
  10. Snake模型综合介绍
  11. 论微服务架构及其应用
  12. 手把手教你写Linux I2C设备驱动 tvp5158
  13. 3 FPGA时序约束理论篇之IO约束
  14. TP房产系统_Tphouse_tpfangchan 1.2.7升级开源版多站点多城市房产系统源码带小程序
  15. 文华软件怎样测试交易系统的收益,文华财经交易系统之终极黄金
  16. ubuntu将cuda卸载干净
  17. 基于微信小程序电商平台
  18. 某金融机构身份国产化LDAP创新实践——国产自主可控 LDAP目录服务建设经验分享
  19. 【矩阵论】4. 矩阵运算——矩阵拉直
  20. 小米电视精简系统、删除自带无用软件教程

热门文章

  1. 计算机信息科学蔺泽浩,马波_北京理工大学计算机学院
  2. 截止8月10日!2022年芜湖市核心技术攻关项目“揭榜挂帅”榜单申报奖补流程
  3. (尚硅谷)JavaWeb新版教程09-QQZone项目总结
  4. 谈谈本科生和研究生的差距
  5. linux dns 对外攻击,各种的常见dns攻击手法和dns劫持解决方法
  6. 第四届橙瓜网络文学奖暨见证·网络文学20年作家评选正式开启,千人评委会隆重见证
  7. 智能医疗辅助诊断——调查与思考
  8. 【济南校区】宝剑锋从磨砺出
  9. CodeForces 82A Double Cola
  10. 生活 list.php,拓展学生识字空间,在生活中自主识字a href=/friend/list.php(教师中心专稿)/a...