Android 画布画线,android实现一个简单的画布,可以用手指画线条。
满意答案
wpdhc
2016.07.05
采纳率:49% 等级:7
已帮助:359人
public class DrawView extends View {
Context mycontext;
int toasttime = 1000*60;
boolean enabletoast = true;
//之前的坐标
float preX;
float preY;
//路径
private Path path;
//画笔
public Paint paint = null;
//默认画布大小
public static int VIEW_WIDTH = 500;
public static int VIEW_HEIGHT = 600;
//
Bitmap cacheBitmap = null;
//
Canvas cacheCanvas = null;
public DrawView(Context context, AttributeSet set) {
super(context, set);
mycontext = context;
cacheBitmap = Bitmap.createBitmap(VIEW_WIDTH, VIEW_HEIGHT,
Config.ARGB_8888);
cacheCanvas = new Canvas();
path = new Path();
cacheCanvas.setBitmap(cacheBitmap);
paint = new Paint(Paint.DITHER_FLAG);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
paint.setAntiAlias(true);
paint.setDither(true);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(x, y);
preX = x;
preY = y;
break;
case MotionEvent.ACTION_MOVE:
path.quadTo(preX, preY, x, y);
preX = x;
preY = y;
break;
case MotionEvent.ACTION_UP:
cacheCanvas.drawPath(path, paint);
path.reset();
if(enabletoast == false){
}
break;
}
invalidate();
return true;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint bmpPaint = new Paint();
canvas.drawBitmap(cacheBitmap, 0, 0, bmpPaint);
canvas.drawPath(path, paint);
}
}
00分享举报
Android 画布画线,android实现一个简单的画布,可以用手指画线条。相关推荐
- android自动画线,Android画布画线 - 使线条变粗
这看起来应该有点微不足道,但是在我的Android应用程序中,我使用画布绘制了连接在一起的一系列线条.出于某种原因,我的线条非常非常微弱.我想知道如何让我的线条变粗?这是我的代码..Android画布 ...
- Android动态画线 坐标画线动画
效果图如下 根据相对于图片本身的坐标xy数组 基于view的左上角为原点 在图片上动态画线 //参考数据类型//pointList [PointEntity(pointX=1, pointY=1), ...
- android自动画线,android中实现自定义画线,画圆,画矩形,使用自定义字体
首先,新建xml文件,resource type为drawble,root element为shape 一.自定义画线 android:shape="line" > andr ...
- Android之使用VideoView组件播放一个简单的视频
1.在Android开发中,提供了VideoView组件用来播放视频文件.首先,要使用这个组件来播放视频,必须在布局文件下添加VideoView组件,然后再到Activity里获取这个组件,然后调用这 ...
- android实现mysql数据库存储_一个简单的Android端对象代理数据库系统的实现(二、执行+存储)...
这是我之前在武汉大学彭智勇老师那边做过的一个对象代理数据库系统.文中给出了一整个系统的几乎所有代码,经测试可正常运行.文章比较长,超出了知乎的最长文章范围,因此分为两篇文章.这是第二篇. 执行 执行部 ...
- android sqlite 操作类封装,SQLiteUtils 一个简单的基于 Android 的 Sqlite 数据库的操作封装库 @codeKK Android开源站...
一个简单的基于 Android 的 Sqlite 数据库的操作封装,它有如下的好处: 便捷地创建表和增添表字段 通过操作对象来 insert 或者 update 表记录 支持多种查询方式,支持分页查询 ...
- Android开发:ListView+SQLite实现一个简单的备忘录程序(ADT插件环境)
前话:明天要交安卓程序了,前几天在自己的电脑上配置了一下安卓环境,但是项目无法编译,原因好像是jdk版本过高,有一个包无法支持,然后换成1.8的jdk也不行,昨晚折腾到凌晨一点半也没成功,今天借了同学 ...
- android 编辑画线,如何在android中用手指在imageview上绘制线条
您应该覆盖视图的onDraw方法. screen_drawing_room.xml android:id="@+id/rlid" android:layout_width=&quo ...
- android demo 调用,Android中调用C++函数的一个简单Demo
这里我不想多解释什么,对于什么JNI和NDK的相关内容大家自己去百度或谷歌.我对Android的学习也只是个新手 .废话少说直接进入正题. 一.在Eclipse中创建一个Android Applica ...
最新文章
- Spring Integration 4.3.10 发布,Spring 消息通信
- java单例模式_Java描述设计模式(01):单例模式
- 计算机配置里 无 管理模板,组策略里打开后没有管理模板
- Shell脚本8种字符串截取方法总结
- ganglia的搭建以及添加被监控主机
- 数据库java_(六) Java数据库
- 如何在 16 英寸 MacBook Pro 内置或独立显示器上更改刷新率?
- 学python对excel有用吗_程序员必修课:为什么非要用Python做数据分析?Excel不好吗?...
- Pycharm汉化使用教程
- MyDriver2-397 XCTF 3rd-RCTF-2017 (windows 驱动题)
- 生意参谋高阶指数换算api、指数换算api、生意参谋交易指数换算api、生意参谋数据查询api
- r语言平均值显著性检验_R语言相关系数、显著性检验及可视化的尝试
- Cglib动态代理实现方式
- 商业级web阅读器项目(下下)
- [题解]LuoGu4315:月下“毛景树”
- 20230306 作业
- 使用U盘安装windows系统时提示找不到任何设备驱动程序
- 阿里云服务器和 hexo 博客实战
- 百度智能小程序一面凉经
- 电子计算机技术的发展情况,电子信息技术的应用特点与未来发展趋势
热门文章
- ADF BC:创建绑定到业务组件的UI表
- MySQL命令之mysqlhotcopy -- 热备份
- python打包成exe_【Python基础】一篇文件教你py文件打包成exe
- 我的世界java无法安装包_手把手教你搭建java环境
- android动画编辑软件,ALM视频动画编辑
- workbench拓扑优化教程_workbenchds拓扑优化分析.ppt
- 数组索引必须为正整数或逻辑值_Office 365函数新世界——动态数组
- 初学者宝典:C语言入门基础知识大全(中)
- c 文件怎么进行读取和写入操作?
- 浅谈面向对象思想下的 C 语言