Android 涂鸦板(简易版)
源码:
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 涂鸦板(简易版)相关推荐
- android 实现qq动画,Android项目:简易版QQ的实现
简易版QQ实现涉及的三个功能模块 引导界面 splash界面(静态) 1.作用:初始化服务器端的一些数据,初始化成功后跳转到主界面 2.页面的延迟跳转: //在主线程中: new Handler(). ...
- android涂鸦板保存功能,Android 使用Path实现涂鸦功能
今天实现一个涂鸦效果,会分几步实现,这里有一个重要的知识点就是图层,要理解这个,不然你看这篇博客,很迷茫,迷茫的苍茫的天涯是我的爱,先从简单的需求做起,绘制一条线,代码如下: package com. ...
- android涂鸦板保存功能,android实现涂鸦,保存涂鸦后的图片,清屏
自定义view的类,代码如下: [html] package com.xy.tuya; import android.annotation.SuppressLint; import android.c ...
- 使用Android Studio创建简易版“答案之书”~~~
步骤一当然就是打开软件啦~ 然后我们就需要开始敲写能成功实现功能的代码啦~ 左侧功能框--app--java Anser: package com.gutt.keymappapp;import jav ...
- Kubernetes实战实现 Guestbook 留言板-简易版详解
1.基础信息 系统版本:CentOS Linux release 7.6 kubernetes版本:kubernetes1.14.0 Docker版本: Docker CE 19.03.5 此 Jav ...
- Android小程序-涂鸦板
最近android课老师布置了一个课后作业,是实现android涂鸦板的功能, 然后自己写了一个简单的涂鸦板,可以实现选择颜色.尺寸.清屏的功能. 首先是效果图: 主要是使用Canvas和Paint来 ...
- 【Android笔记65】Android小案例之简易版的房贷计算器(附源代码)
这篇文章,主要介绍如何使用Android实现一个简易版的房贷计算器小案例. 目录 一.房贷计算器 1.1.运行效果演示 1.2.前提准备 (1)等额本息和等额本金
- Canvas网页涂鸦板再次增强版
目录 第一版Canvas涂鸦板 第二版Canvas涂鸦板 第三版Canvas涂鸦板 体验涂鸦板 第一版Canvas涂鸦板 实现功能:在涂鸦板上鼠标按下去拖动的涂鸦效果 实现思路:监听鼠标按下.移动.松 ...
- android 简易涂鸦板,canvas实现的简易涂鸦板效果
用canvas实现的简易涂鸦板效果,用鼠标点击在画布上随意涂鸦 涂鸦 *{ margin: 0; padding: 0; } #canvas1{ box-shadow: 0 5px 40px blac ...
最新文章
- MongoDB的各个版本下载地址汇总
- 腾讯Blade Team胡珀:IoT时代,“白帽子”以网为剑捍卫安全
- ORA-12154: TNS:could not resolve the connect identifier specified. Solved.
- 西安理工大学计算机专业毕业,西安理工大学什么专业好找工作?毕业工资大概多少?答案在这里...
- 工作228:小程序学习2开始布局页面2
- ASP.NET 1.1与ASP.NET 2.0 应用运行并存
- jeecgboot 前端环境搭建_如何从零开始搭建前端监控平台?
- 如何提升沟通技能与提出解决方案
- 芯片烧录软件Android版,HiTool官方版
- 算术逻辑单元 —— 串行加法器和并行加法器
- PDF文件怎么转换成CAD格式?教你几种转换方法
- 有了PDA手持终端,仓库再也不愁盘点了
- WebServices(转)
- 西门子SMART200程序 PID的控制写法,突破8路
- import()函数和import语句
- 手机计算机怎么缩小桌面图标,如何将电脑桌面快捷图标放大或缩小
- Python制作一个简易时钟(可显示日期,星期)
- java酒吧会所预定系统ssm
- 从京东IPO看电商的下一个十年
- linux是优秀程序员吗,如何理解Linus Torvalds“什么才是优秀程序员”
热门文章
- 逍遥自在学C语言 | 指针函数与函数指针
- 局域网共享打印机早上能打印,下午就不能打印,打印机列表里有正在打印下层文档
- 1639408-64-2 ; (ir[df(cf3)ppy]2(phen))pf6热延迟荧光材料TADF
- css 两个div一行居中显示,CSS:多个DIV在同一行居中显示的一种实现方法
- 数据结构-二叉链表的结构与实现
- java毕业生设计中山学院教室管理系统计算机源码+系统+mysql+调试部署+lw
- tp5.1 setInc字段自动加1
- 开源代码难阅读?几位研发的“妙招”帮你解决
- C语言 Union的用法 和 大小端的判断
- Java中的静态内部类