对象-来说说Paint和Canvas的设计问题

问题描述

来说说Paint和Canvas的设计问题

在Android中我发现这两个类好有意思。首先,我们在ps中的画画是这样的如,
画一个红色的矩形:
1.选择矩形工具;
2.设置矩形颜色(red);
3.如果要设置边缘就设置边缘;

这样就完成了。

但是,在Android中就不一样了。画一个红色的矩形:
1.设置paint为填充,颜色为红色;
2.canvas.drawRect(,paint)

感觉两者的想法很不一样。一个是用对象来解决,一个是用组合来解决问题。

解决方案

有什么不一样,你在ps中画画时,也要先选择样式,颜色,然后才是绘制啊

解决方案二:

Paint的意思是画笔,颜色和填充什么的当然都要它来设置
canvas的意思是画布,那么它就是设置区域以及位置

解决方案三:

安卓的绘图机制是预先将所有要画的图形画到一个Bitmap上,最后再一次性的将这个bitmap画出来,每一个canvas都绑定了一个bitmap,你可以去看一下官方API

时间: 2024-10-29 15:08:57

对象-来说说Paint和Canvas的设计问题的相关文章

Android画图之抗锯齿paint和Canvas两种方式实例

在画图的时候,图片如果旋转或缩放之后,总是会出现那些华丽的锯齿.其实Android自带了解决方式. 方法一:给Paint加上抗锯齿标志.然后将Paint对象作为参数传给canvas的绘制方法. paint.setAntiAlias(true); 方法二:给Canvas加上抗锯齿标志. 有些地方不能用paint的,就直接给canvas加抗锯齿,更方便. 复制代码 代码如下: canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_AL

Android Paint、Canvas、Matrix使用讲解(一、Paint)

http://blog.csdn.net/tianjian4592/article/details/44336949 好了,前面主要讲了Animation,Animator 的使用,以及桌面火箭效果和水波纹效果,分别使用android框架和自己绘制实现,俗话说,工欲善其事,必先利其器,接下来几篇文章主要讲绘制中我们需要常使用的一些利器: Paint:画笔 Canvas:画布 Matrix:变换矩阵 绘制动效确实就像拿着笔在画布上面画画一样,而Paint就是我们拿着的笔,Canvas就是使用的画布

Android开发之图形图像与动画(一)Paint和Canvas类学习_Android

Paint类 *Paint类代表画笔,用来描述图形的颜色和风格,如线宽,颜色,透明度和填充效果等信息. *使用Paint类时,需要先创建该类的对象,可以通过该类的构造函数实现.通常情况的实现代码是: *Paintpaint=newPaint(); *创建完Paint对象后,可以通过该对象提供的方法对画笔的默认设置进行改变 Canvas *Canvas类代表画布,通过该类提供的构造方法,可以绘制各种图形. *通常情况下,要在Android中绘图,需要先创建一个继承自View类的视图,并且在该类中重

Android开发之图形图像与动画(一)Paint和Canvas类学习

Paint类 *Paint类代表画笔,用来描述图形的颜色和风格,如线宽,颜色,透明度和填充效果等信息. *使用Paint类时,需要先创建该类的对象,可以通过该类的构造函数实现.通常情况的实现代码是: *Paintpaint=newPaint(); *创建完Paint对象后,可以通过该对象提供的方法对画笔的默认设置进行改变 Canvas *Canvas类代表画布,通过该类提供的构造方法,可以绘制各种图形. *通常情况下,要在Android中绘图,需要先创建一个继承自View类的视图,并且在该类中重

类和对象的关系,以及类的设计及其操作步骤

问题描述 我学过一些面向对象的语言:有JAVA,C#,C++.但是对方法,函数,类和对象的概念,它们之间的关系,编写代码时类的设计和操作的理解仍然不太清楚,请求专家能够给出详细的解答,谢谢! 解决方案 解决方案二:拿生活中的例子来说吧,人:是一个统称,称其为类.人会走路,说活,思考等:这叫作类的方法,方法和函数其实是一样的,函数放到类里就叫方法了.你或我或他:这种一个个具体的"人"叫做人这个类的实例,也叫类的对象吧.解决方案三:简单地说...类是对象的抽象...对象是类的实例...同一

对象-求 后缀表达式计算器代码及设计思想 本人小白 求大神

问题描述 求 后缀表达式计算器代码及设计思想 本人小白 求大神 后缀表达式计算器 目的:后缀表达式不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则, 要求:实现一个简单的后缀表达式计算器.假定表达式里的基本数值为实数,可用的运算符包括+,-,*,/,^,其中的 ^ 表示求幂运算. ①假定输入表达式里的数和运算符之间都有空格,这样可以简化输入的处理: ②输入的算术表达式以分号为结束符.计算器应该能输入并计算一系列表达式,遇到一行的第

改善用户体验,用图片的自身变化以及进度通知摆脱传统的进度条,okhttp,Canvas,Paint实现

转载请注明出处:王亟亟的大牛之路 从最开始的白页面等待,到后来的进度条告知用户,到现在的WebBO/微信这种先下缩略图点击才重新下大图的方式,我们开发者对用户感知的注意度越来越高,昨天刷微博的时候看到他们是用一个灰色转圈圈的实现,所以就萌生的今天要做的内容的启发(我是在不知道给这种实现取什么名字,就写了一大堆,感觉在哪见过类似的但是,忘了出自于哪了) 先上下效果: GIF软件继续把我的效果给吃了..大家可以自己跑一下,看效果. HOW to do? 1.我们的图片来自于网络,如果是本地,也不需要

Android自定义View中Paint、Rect、Canvas介绍(一)

自定义View对于新手而言貌似是一个很复杂的东西.格式,各函数的意义.对于大神经常忘记各函数及一些参数的具体写法及意义,刚好在做一个风车效果,把过程及遇到的问题都写下来 1.如何自定义一个View public class LeafView extends View { private String TAG = "--------LeafView"; public LeafView(Context context, AttributeSet attrs) { super(context

J2ME伪高手先锋开讲—扫雷游戏的设计

设计 J2ME伪高手先锋开讲--扫雷游戏的设计 首先我要装得像高手一样,来假装把系统稍微分析一下. 一般,按照java得开发模式,这种程序一般是分为三个模块来开发. 如下三个: 一个程序运作的主文件,也就是一个midlet的继承: 一个界面的表示类,也就是一个canvas的继承,界面上应该有些菜单,如new.exit 什么的,那就应该要 implements一个 commandListener消息监听类(大家可以把java的消息监听理解为一个线程,一直像倭寇那样对看得顺眼的东西虎视耽耽,当然这里