android图形的必要元素
好了,请原谅我刚刚学习了android图形的必要元素,android,Android,好了,请原谅我刚刚学习了AndroidGraphics,我只知道一点。我可以用画布中的绘制类似于线条的东西 Paint background = new Paint(); background.setColor(getResources().getColor( R.color.puzzle_background)); canvas.drawRect(0, 0, getWidth(), getHeight(), background);
Android
Graphics,我只知道一点。我可以用画布
中的绘制类似于线条的东西
Paint background = new Paint();
background.setColor(getResources().getColor(
R.color.puzzle_background));
canvas.drawRect(0, 0, getWidth(), getHeight(), background);
Paint dark = new Paint();
dark.setColor(getResources().getColor(R.color.puzzle_dark));
Paint hilite = new Paint();
hilite.setColor(getResources().getColor(R.color.puzzle_hilite));
Paint light = new Paint();
light.setColor(getResources().getColor(R.color.puzzle_light));
// Draw the minor grid lines
for (int i = 0; i < 9; i++) {
canvas.drawLine(0, i * height, getWidth(), i * height, light);
canvas.drawLine(0, i * height + 1, getWidth(), i * height + 1,
hilite);
canvas.drawLine(i * width, 0, i * width, getHeight(), light);
canvas.drawLine(i * width + 1, 0, i * width + 1, getHeight(),
hilite);
}
// Draw the major grid lines
for (int i = 0; i < 9; i++) {
if (i % 3 != 0)
continue;
canvas.drawLine(0, i * height, getWidth(), i * height, dark);
canvas.drawLine(0, i * height + 1, getWidth(), i * height + 1,
hilite);
canvas.drawLine(i * width, 0, i * width, getHeight(), dark);
canvas.drawLine(i * width + 1, 0, i * width + 1, getHeight(),
hilite);
}
绘制背景=新绘制();
background.setColor(getResources().getColor(
R.color.puzzle_背景);
drawRect(0,0,getWidth(),getHeight(),background);
深色油漆=新油漆();
setColor(getResources().getColor(R.color.puzzle_dark));
Paint hilite=新的Paint();
setColor(getResources().getColor(R.color.puzzle_hilite));
油漆灯=新油漆();
setColor(getResources().getColor(R.color.puzzle_light));
//绘制次要网格线
对于(int i=0;i<9;i++){
绘制线(0,i*height,getWidth(),i*height,light);
画布.抽绳(0,i*height+1,getWidth(),i*height+1,
赤铁矿);
绘制线(i*width,0,i*width,getHeight(),light);
canvas.drawLine(i*width+1,0,i*width+1,getHeight(),
赤铁矿);
}
//绘制主网格线
对于(int i=0;i<9;i++){
如果(i%3!=0)
继续;
绘制线(0,i*height,getWidth(),i*height,深色);
画布.抽绳(0,i*height+1,getWidth(),i*height+1,
赤铁矿);
canvas.drawine(i*width,0,i*width,getHeight(),深色);
canvas.drawLine(i*width+1,0,i*width+1,getHeight(),
赤铁矿);
}
但是如果我想在Android
中绘制一些东西,我不知道哪些是必要的元素,Paint
是必要的元素之一吗?谢谢。我知道在安卓系统中有三种基本的绘图方法
1-覆盖onDraw
(正如您所做的那样),它为您提供了在视图曲面上绘制的视图画布。这用于简单图形,因为代码在主线程中运行
2-子类SurfaceView
,它为绘制提供了一个单独的线程(提供了画布以及您绘制的曲面),用于中等负载绘制,因为它有一个单独的线程,所以它可以比1快
3-OpenglSurfaceView
,这是一个不同的概念,您可以创建一个3D场景,并直接使用GPU进行渲染。这是用于重量级绘图,因为与GPU直接对话可以实现更快的动画,特别是在3D游戏中
正如我在评论中所说,Canvas
是您的调色板,它为您提供了绘制线、圆、图像等的基本工具。而,Paint
是您的画笔,它可以让您确定笔划宽度、颜色、文本大小和字体等。如果您对Canvas
的默认设置感到满意,则可能不需要更改绘制对象。您的绘图板就是视图的表面。您能澄清一下您想要实现的目标吗?Canvas类是你的调色板,Paint是你的画笔我的意思是如果我想在android中绘制图形,这两个Canvas
和Paint
是需要初始化的实例?谢谢。谢谢你出色的回答,我想这对像我这样刚学会安卓系统的人会很感激和帮助。再次感谢。