涂鸦Surfaceview
涂鸦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相关推荐
- Android应用开发实例篇(1)-----简易涂鸦板
一.概述 这次要做一个简单的涂鸦板应用,以前在Qt上实现过,突然想到要把它在Android上实现,呵呵,既简单又有趣. 二.实现 新建工程MyWall,修改/res/layout/main.xml文件 ...
- github android涂鸦,Android 涂鸦最佳实践
Android中实现手势绘图一般都两种方式,一是直接在View上绘制,而是使用SurfaceView.两者还是有一些区别的,简单介绍下.View:显示视图,内置画布,提供图形绘制函数.触屏事件.按键事 ...
- android+高仿视频录制,高仿微信视频录制, 涂鸦水印添加, 基于 ffmpeg 视频编辑
功能主要包含5点: 1.基于ffmpeg的视频拍摄及合成; 2.自定义拍摄按钮, 长按放大并且显示拍摄进度; 3.自定义view, 实现手绘涂鸦; 4.自定义可触摸旋转缩放位移的表情文字view; 5 ...
- android好玩界面,Android 带你撸一个好玩的 DoodleView(涂鸦)
本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 前言 最近项目中需要用到涂鸦的功能,在 Github 上搜了一圈也没找到适合的库,索性就自己撸一个出来,正好复习一下自定义 View ...
- Android SurfaceView 黑背景的处理方法
SurfaceView 绘制的时候出现黑背景的如下 或者如下 处理方法就是添加 //画布透明处理this.setZOrderOnTop(true);this.mSurfaceHolder.setFor ...
- 使用Python,OpenCV进行涂鸦(绘制文字、线、圆、矩形、椭圆、多边形轮廓、多边形填充、箭头~)
使用Python,OpenCV进行涂鸦(绘制文字.线.圆.矩形.椭圆.多边形轮廓.多边形填充.箭头) 1. 效果图 2. 原理 2.1 绘制线:cv2.line(canvas, (300, 0), ( ...
- 利用SurfaceView显示正弦曲线,仿造示波器
众所周知,view是通过刷新来重绘视图的,Android系统通过发出VSYNC信号来进行屏幕重绘,刷新的时间间隔为16ms,如果在16ms内view完成你所需要的所有操作,那么用户在视觉上就不会产生卡 ...
- Android UI SurfaceView的使用-绘制组合图型,并使其移动
绘制容器类: //图形绘制容器 public class Contanier {private List<Contanier> list;private float x=0,y=0;pub ...
- 【Android游戏开发之七】(游戏开发中需要的样式)再次剖析游戏开发中对SurfaceView中添加组件方案!...
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/308.html ...
最新文章
- 文献学习(part88)--Graph Learning for Multiview Clustering
- Spring RESTful错误处理
- 信息学奥赛一本通(1312:【例3.4】昆虫繁殖)
- java 内部类传值_Java 封装(内部类)
- python3 字符串比较_Python3 字符串
- 场景7:带有Linux网桥的提供商网络
- originos系统会基于鸿蒙开发吗,originos系统是安卓吗 originos系统什么时候更新[多图]...
- discuz核心类库class_core的函数注释
- 小程序使用腾讯API定位的全过程(详细)
- Grads保姆级教学——小乌龟考试看这一篇就够了
- vscode 折叠/展开所有区域代码快捷键
- 惠普打印机,打印状态:需要注意,打印时显示:需要用户干
- matlab两条曲线方程求交点_帮忙matlab求两条曲线交点程序,不知问题出在哪里。...
- 如何将静图制作成动图?教你一招快速合成GIF动图的方法
- 深度学习需要的电脑配置
- Spring Cloud Eureka 自我保护机制(EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY)
- Android 监听wifi总结
- Android面试题(含答案)
- android mediaplayer 权限,Android — 使用MediaPlayer进行音频播放
- 如何像程序员一样思考
热门文章
- s7200液位控制程序_基于s7-200的液位控制系统系统设计及plc控制程序.doc
- 金山WPS移动端笔试-android方向
- 去除桌面文件名的背景色
- ios12和android9.0,安卓9.0与ios12,谁更胜一筹[多图]
- php设计师多吗,做设计师,你不得不知的几个网站
- C语言 Union的用法 和 大小端的判断
- 用数学公式算法求解斐波那契数列
- 简单音乐播放暂停继续
- 曾经有一份真诚的爱情放在我面前,我没有珍惜[方言版]
- asp静态html 自适应,ASP博客源码 html5 小清新自适应