canvas教程

Android 画板(canvas)画bitmap的时候怎么指定绘画时的起始位置

字号+ 作者:H5之家 来源:H5之家 2018-01-22 10:05 我要评论( )

各位高手,先详细看本人这个图和文字解释内容:(问题就在图中) 好!看完之后,本人就展示一下实现这些的相关代码,本人再强调一下,在这里面就只有一个画板!



各位高手,先详细看本人这个图和文字解释内容:(问题就在图中)



好!看完之后,本人就展示一下实现这些的相关代码,本人再强调一下,在这里面就只有一个画板!里面的三个图片是先用Path画好矩阵形状,再把bitmap图片画进去的。
下面是先画好矩阵形状的代码:

//画好矩阵模块 privatevoidinitPath(){ floatcpad=padding/2;//padding=10 //视图宽高 floatw=getWidth(); floath=getWidth(); floatbx=w/2;// floatby=h/2;//相当于中心点 top=newPath(); left=newPath(); right=newPath(); //上图 top.moveTo(padding*1.7f,padding); top.lineTo(w-padding*1.7f,padding); top.lineTo(bx,by-0.7f*padding); top.close(); //左图 left.moveTo(padding,padding*1.7f); left.lineTo(bx-cpad,by+0.2f*padding); left.lineTo(bx-cpad,h-padding); left.lineTo(padding,h-padding); left.close(); //右图 right.moveTo(w-padding,padding*1.7f); right.lineTo(bx+cpad,by+0.2f*padding); right.lineTo(bx+cpad,h-padding); right.lineTo(w-padding,h-padding); right.close(); }

现在在onDraw方法中才开始画了,请注意看注释是先画矩阵,再画bitmap图片

@Override protectedvoidonDraw(Canvascanvas){ super.onDraw(canvas); if(topImage!=null){ canvas.save(); canvas.clipPath(top);//先画好模块 canvas.drawBitmap(topImage,topMatrix,paint);//再画图 canvas.restore(); canvas.save(); canvas.clipPath(left); canvas.drawBitmap(leftImage,leftMatrix,paint); canvas.restore(); canvas.save(); canvas.clipPath(right); canvas.drawBitmap(rightImage,rightMatrix,paint); canvas.restore(); } }

问题就是说怎么解决绘制图3的起始位置,就这一个问题!还请高手们指导指导!但是注意了!本人在onDraw方法中画的时候必须是这样的:
canvas.drawBitmap(rightImage,rightMatrix,paint);
而不是这样设置坐标的:
canvas.drawBitmap(bitmap,x,y,null);

解决方案:50分

试试这个?
右图的path也从0,0开始画
然后绘图时候
canvas.save();
canvas.translate(x,y);
canvas.save();
canvas.clipPath(right);
canvas.drawBitmap(rightImage,rightMatrix,paint);
canvas.restore();
canvas.restore();

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • canvas文字换行

    canvas文字换行

    2018-01-21 16:12

  • Canvas图片旋转

    Canvas图片旋转

    2018-01-20 16:09

  • 393111 帆布制品制造工 canvas goods fabricator

    393111 帆布制品制造工 canvas goods fabricator

    2018-01-19 18:00

  • Unity5.4 Canvas的bug

    Unity5.4 Canvas的bug

    2018-01-19 17:00

网友点评
"