一个自定义View中canvas画图的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个自定义View中canvas画图的问题相关的知识,希望对你有一定的参考价值。

我写了个类继承了View ,在onDraw()方法中绘制了背景,而 现在需要接受用户的触摸事件,在自定义的类中另外写了一个方法,在触摸的位置画一个Bitmap,如果要调用canvas.drawBitmap()的话,要有canvas对象,有没有什么办法拿到canvas对象或者其他的方法可以画图的,小弟新手 求赐教

Canvas对象的获取方式有两种:一种我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来另一种就是当你想创建一个Canvas对象时使用的方法:Bitmap bitmap = Bitmap.createBitmap(宽,高, Bitmap.Config);Canvas c = new Canvas(bitmap); 参考技术A 用surfaceview可以在surfaceviewchanged里面可以进行绘制,可以根据activity里面的监听事件具体修改它 canvas在surfacevie的方法里new出就可以 参考技术B 你可以试下SurfaceView 你的点击处理事件仍然可以 在activity中处理Canvas对象可以直接new的 参考技术C 你传过去就行了啊?在另外一个类的初始化的时候,或者是调用方法的时候

android:如何用canvas在自定义view里画图

参考技术A 做安卓开发的话,不会自定义view是不行的,自定定义各种控件以满足开发需求,在开发中是很重要的,自定义view通过继承view,通过重写ondraw方法实现重绘自己所需要的控件样式。
在ondraw方法中,通过canvas来绘制想要的样式,首先需要定义好画笔,以及画笔的各种属性,比如需要的时候要
抗锯齿
等等。都准备好了就可以用canvas来实现绘图了,当然api提供的api肯定是不够用的,需要多姿多彩的样式很多时候需要借助准备好的一些图片,通过canvas绘制bitmap来实现把准备好的图片绘制上去。绘制好了当然还是不够的,控件都是需要和用户交互的,所以很多时候样式是会发生改变的,所以要在其中定义相关方法暴露出来,方法中处理用户操作或其他的结果改变样式的重绘,绘制好了调用更新(
invalidate
())方法,实现样式的改变。做好一个控件还需要优化性能等等,都需要一步一慢慢实现。

以上是关于一个自定义View中canvas画图的问题的主要内容,如果未能解决你的问题,请参考以下文章

自定义view画图

自定义View中改变画布(canvas)状态在画图

Android之自定义画图文字动画

Android自定义View实战教程5??---Canvas详解及代码绘制安卓机器人

Android自定义View画图的步骤及关于CanvasBitmapPaint的关系

Android自定义View基础