涂鸦Surfaceview

  • 布局layout
  • Activity

布局layout

      <SurfaceViewandroid:id="@+id/main_surface"android:layout_width="match_parent"android:layout_height="match_parent" />

Activity

public class MainActivity extends AppCompatActivity {private SurfaceView surfaceView;private SurfaceHolder surfaceHolder;private Path path=new  Path();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//查找控件surfaceView=findViewById(R.id.main_surface);//获得SurfaceHoldersurfaceHolder=surfaceView.getHolder();//鼠标的监听surfaceView.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View view, MotionEvent motionEvent) {Log.e("#####","1111111111111");if(motionEvent.getAction()==MotionEvent.ACTION_DOWN){//鼠标落下的时候Log.e("#####","22222222");path.moveTo(motionEvent.getX(),motionEvent.getY());}else if(motionEvent.getAction()==MotionEvent.ACTION_MOVE){//鼠标移动的时候Log.e("#####","3333333");path.lineTo(motionEvent.getX(),motionEvent.getY());}return true;}});//重写方法surfaceHolder.addCallback(new SurfaceHolder.Callback() {@Overridepublic void surfaceCreated(SurfaceHolder surfaceHolder) {//while(true)属于耗时操作  在子线程中执行new MyThread().start();}@Overridepublic void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {}@Overridepublic void surfaceDestroyed(SurfaceHolder surfaceHolder) {}});}class MyThread extends Thread{@Overridepublic void run() {super.run();//画笔Paint paint = new Paint();//画笔的大小paint.setTextSize(30);paint.setStyle(Paint.Style.STROKE);while (true){//三原色int a =(int)(Math.random()*255);int a1 =(int)(Math.random()*255);int a2 =(int)(Math.random()*255);//执行三原色int argb = Color.argb(255, a, a1, a2);paint.setColor(argb);//开启画布Canvas canvas = surfaceHolder.lockCanvas();//清空画布canvas.drawColor(Color.WHITE, PorterDuff.Mode.CLEAR);//货值路径Log.i("lyj",""+path);canvas.drawPath(path,paint);//关闭画布surfaceHolder.unlockCanvasAndPost(canvas);}}}
}

五颜六色的涂鸦

涂鸦Surfaceview相关推荐

  1. Android应用开发实例篇(1)-----简易涂鸦板

    一.概述 这次要做一个简单的涂鸦板应用,以前在Qt上实现过,突然想到要把它在Android上实现,呵呵,既简单又有趣. 二.实现 新建工程MyWall,修改/res/layout/main.xml文件 ...

  2. github android涂鸦,Android 涂鸦最佳实践

    Android中实现手势绘图一般都两种方式,一是直接在View上绘制,而是使用SurfaceView.两者还是有一些区别的,简单介绍下.View:显示视图,内置画布,提供图形绘制函数.触屏事件.按键事 ...

  3. android+高仿视频录制,高仿微信视频录制, 涂鸦水印添加, 基于 ffmpeg 视频编辑

    功能主要包含5点: 1.基于ffmpeg的视频拍摄及合成; 2.自定义拍摄按钮, 长按放大并且显示拍摄进度; 3.自定义view, 实现手绘涂鸦; 4.自定义可触摸旋转缩放位移的表情文字view; 5 ...

  4. android好玩界面,Android 带你撸一个好玩的 DoodleView(涂鸦)

    本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 前言 最近项目中需要用到涂鸦的功能,在 Github 上搜了一圈也没找到适合的库,索性就自己撸一个出来,正好复习一下自定义 View ...

  5. Android SurfaceView 黑背景的处理方法

    SurfaceView 绘制的时候出现黑背景的如下 或者如下 处理方法就是添加 //画布透明处理this.setZOrderOnTop(true);this.mSurfaceHolder.setFor ...

  6. 使用Python,OpenCV进行涂鸦(绘制文字、线、圆、矩形、椭圆、多边形轮廓、多边形填充、箭头~)

    使用Python,OpenCV进行涂鸦(绘制文字.线.圆.矩形.椭圆.多边形轮廓.多边形填充.箭头) 1. 效果图 2. 原理 2.1 绘制线:cv2.line(canvas, (300, 0), ( ...

  7. 利用SurfaceView显示正弦曲线,仿造示波器

    众所周知,view是通过刷新来重绘视图的,Android系统通过发出VSYNC信号来进行屏幕重绘,刷新的时间间隔为16ms,如果在16ms内view完成你所需要的所有操作,那么用户在视觉上就不会产生卡 ...

  8. Android UI SurfaceView的使用-绘制组合图型,并使其移动

    绘制容器类: //图形绘制容器 public class Contanier {private List<Contanier> list;private float x=0,y=0;pub ...

  9. 【Android游戏开发之七】(游戏开发中需要的样式)再次剖析游戏开发中对SurfaceView中添加组件方案!...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/308.html   ...

最新文章

  1. 文献学习(part88)--Graph Learning for Multiview Clustering
  2. Spring RESTful错误处理
  3. 信息学奥赛一本通(1312:【例3.4】昆虫繁殖)
  4. java 内部类传值_Java 封装(内部类)
  5. python3 字符串比较_Python3 字符串
  6. 场景7:带有Linux网桥的提供商网络
  7. originos系统会基于鸿蒙开发吗,originos系统是安卓吗 originos系统什么时候更新[多图]...
  8. discuz核心类库class_core的函数注释
  9. 小程序使用腾讯API定位的全过程(详细)
  10. Grads保姆级教学——小乌龟考试看这一篇就够了
  11. vscode 折叠/展开所有区域代码快捷键
  12. 惠普打印机,打印状态:需要注意,打印时显示:需要用户干
  13. matlab两条曲线方程求交点_帮忙matlab求两条曲线交点程序,不知问题出在哪里。...
  14. 如何将静图制作成动图?教你一招快速合成GIF动图的方法
  15. 深度学习需要的电脑配置
  16. Spring Cloud Eureka 自我保护机制(EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY)
  17. Android 监听wifi总结
  18. Android面试题(含答案)
  19. android mediaplayer 权限,Android — 使用MediaPlayer进行音频播放
  20. 如何像程序员一样思考

热门文章

  1. s7200液位控制程序_基于s7-200的液位控制系统系统设计及plc控制程序.doc
  2. 金山WPS移动端笔试-android方向
  3. 去除桌面文件名的背景色
  4. ios12和android9.0,安卓9.0与ios12,谁更胜一筹[多图]
  5. php设计师多吗,做设计师,你不得不知的几个网站
  6. C语言 Union的用法 和 大小端的判断
  7. 用数学公式算法求解斐波那契数列
  8. 简单音乐播放暂停继续
  9. 曾经有一份真诚的爱情放在我面前,我没有珍惜[方言版]
  10. asp静态html 自适应,ASP博客源码 html5 小清新自适应