源码:

FruitBackgound.java

package com.example.administrator.myapplication.XiaoDabao;import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Path;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;import com.example.administrator.myapplication.R;import java.util.ArrayList;
import java.util.List;public class FruitBackGround extends View{private static final int  isChanged = 1;private List<Path> paths = new ArrayList<>();float fromX = 0f;float fromY = 0f;float toX = 0f;float toY = 0f;float tempX = 0f;float tempY = 0f;private static final Paint mPaint = new Paint();private Path mPath = new Path();public FruitBackGround(Context context) {super(context);init();}public FruitBackGround(Context context, @Nullable AttributeSet attrs) {super(context, attrs);init();}public FruitBackGround(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init();}//核心事件@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()){case MotionEvent.ACTION_DOWN:{fromX = event.getX();fromY = event.getY();mPath.moveTo(fromX,fromY);if(fromX > 0&& fromX<=300 && fromY>0 && fromY<=300){mPath = new Path();invalidate();return  true;}invalidate();tempX = fromX;tempY = fromY;break;}case MotionEvent.ACTION_MOVE:{toX = event.getX();toY = event.getY();if(fromX > 0&& fromX<=300 && fromY>0 && fromY<=300){mPath = new Path();invalidate();return  true;}mPath.quadTo(tempX,tempY,toX,toY);invalidate();tempX = toX;tempY = toY;break;}case MotionEvent.ACTION_UP:{mPath = new Path();break;}}return true;}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);drawPath(canvas);}private void drawPath(final Canvas canvas) {if(mPath != null && !mPath.isEmpty()){canvas.drawPath(mPath,mPaint);}}private void init(){mPaint.setColor(Color.RED);mPaint.setStyle(Paint.Style.STROKE);mPaint.setStrokeWidth(30f);mPaint.setAntiAlias(true);}public void clear(){mPath = new Path();invalidate();}
}

FruitActivity.java

package com.example.administrator.myapplication.XiaoDabao;import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;import com.example.administrator.myapplication.R;public class FruitActivity extends AppCompatActivity {private Button clear;private FruitBackGround myView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_fruit);initView();}private void initView(){Display defaultDisplay = getWindowManager().getDefaultDisplay();int screenWidth = defaultDisplay.getWidth();int screenHeight = defaultDisplay.getHeight();myView = findViewById(R.id.myview);//        this.addContentView(drawableView);clear = findViewById(R.id.clear);clear.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {myView.clear();Toast.makeText(getApplicationContext(),"清空",Toast.LENGTH_SHORT).show();}});}}

Android 涂鸦板(简易版)相关推荐

  1. android 实现qq动画,Android项目:简易版QQ的实现

    简易版QQ实现涉及的三个功能模块 引导界面 splash界面(静态) 1.作用:初始化服务器端的一些数据,初始化成功后跳转到主界面 2.页面的延迟跳转: //在主线程中: new Handler(). ...

  2. android涂鸦板保存功能,Android 使用Path实现涂鸦功能

    今天实现一个涂鸦效果,会分几步实现,这里有一个重要的知识点就是图层,要理解这个,不然你看这篇博客,很迷茫,迷茫的苍茫的天涯是我的爱,先从简单的需求做起,绘制一条线,代码如下: package com. ...

  3. android涂鸦板保存功能,android实现涂鸦,保存涂鸦后的图片,清屏

    自定义view的类,代码如下: [html] package com.xy.tuya; import android.annotation.SuppressLint; import android.c ...

  4. 使用Android Studio创建简易版“答案之书”~~~

    步骤一当然就是打开软件啦~ 然后我们就需要开始敲写能成功实现功能的代码啦~ 左侧功能框--app--java Anser: package com.gutt.keymappapp;import jav ...

  5. Kubernetes实战实现 Guestbook 留言板-简易版详解

    1.基础信息 系统版本:CentOS Linux release 7.6 kubernetes版本:kubernetes1.14.0 Docker版本: Docker CE 19.03.5 此 Jav ...

  6. Android小程序-涂鸦板

    最近android课老师布置了一个课后作业,是实现android涂鸦板的功能, 然后自己写了一个简单的涂鸦板,可以实现选择颜色.尺寸.清屏的功能. 首先是效果图: 主要是使用Canvas和Paint来 ...

  7. 【Android笔记65】Android小案例之简易版的房贷计算器(附源代码)

    这篇文章,主要介绍如何使用Android实现一个简易版的房贷计算器小案例. 目录 一.房贷计算器 1.1.运行效果演示 1.2.前提准备 (1)等额本息和等额本金

  8. Canvas网页涂鸦板再次增强版

    目录 第一版Canvas涂鸦板 第二版Canvas涂鸦板 第三版Canvas涂鸦板 体验涂鸦板 第一版Canvas涂鸦板 实现功能:在涂鸦板上鼠标按下去拖动的涂鸦效果 实现思路:监听鼠标按下.移动.松 ...

  9. android 简易涂鸦板,canvas实现的简易涂鸦板效果

    用canvas实现的简易涂鸦板效果,用鼠标点击在画布上随意涂鸦 涂鸦 *{ margin: 0; padding: 0; } #canvas1{ box-shadow: 0 5px 40px blac ...

最新文章

  1. MongoDB的各个版本下载地址汇总
  2. 腾讯Blade Team胡珀:IoT时代,“白帽子”以网为剑捍卫安全
  3. ORA-12154: TNS:could not resolve the connect identifier specified. Solved.
  4. 西安理工大学计算机专业毕业,西安理工大学什么专业好找工作?毕业工资大概多少?答案在这里...
  5. 工作228:小程序学习2开始布局页面2
  6. ASP.NET 1.1与ASP.NET 2.0 应用运行并存
  7. jeecgboot 前端环境搭建_如何从零开始搭建前端监控平台?
  8. 如何提升沟通技能与提出解决方案
  9. 芯片烧录软件Android版,HiTool官方版
  10. 算术逻辑单元 —— 串行加法器和并行加法器
  11. PDF文件怎么转换成CAD格式?教你几种转换方法
  12. 有了PDA手持终端,仓库再也不愁盘点了
  13. WebServices(转)
  14. 西门子SMART200程序 PID的控制写法,突破8路
  15. import()函数和import语句
  16. 手机计算机怎么缩小桌面图标,如何将电脑桌面快捷图标放大或缩小
  17. Python制作一个简易时钟(可显示日期,星期)
  18. java酒吧会所预定系统ssm
  19. 从京东IPO看电商的下一个十年
  20. linux是优秀程序员吗,如何理解Linus Torvalds“什么才是优秀程序员”

热门文章

  1. 逍遥自在学C语言 | 指针函数与函数指针
  2. 局域网共享打印机早上能打印,下午就不能打印,打印机列表里有正在打印下层文档
  3. 1639408-64-2 ; (ir[df(cf3)ppy]2(phen))pf6热延迟荧光材料TADF
  4. css 两个div一行居中显示,CSS:多个DIV在同一行居中显示的一种实现方法
  5. 数据结构-二叉链表的结构与实现
  6. java毕业生设计中山学院教室管理系统计算机源码+系统+mysql+调试部署+lw
  7. tp5.1 setInc字段自动加1
  8. 开源代码难阅读?几位研发的“妙招”帮你解决
  9. C语言 Union的用法 和 大小端的判断
  10. Java中的静态内部类