开发者社区> 问答> 正文

如何使得canvas里的图片能够进行旋转,而不导致整个画布的旋转

自定义的布局中,在一个Canvas里绘画了很多图片。现在想使得画布里的
每个图片都进行旋转。我使用了下面的代码

{
mRotation += 10;
if (mRotation > 360)
{

mRotation = mRotation % 360;

}
synchronized (lockObject)
{

for (int i = 0; i < particleList.size();i++)
{
    Picture particle = pictureList.get(i);
    Paint paint=new Paint();

    ......

    paint.setAlpha(particle.getAlpha());

   //rotate the bitmap
    canvas.save();
    Matrix matrix = new Matrix();
    matrix.postRotate(mRotation,particle
            .getPositionX() + particle.getParticleWidth()/2, particle.getPositionY() +
            particle.getParticleHeight()/2);
    canvas.drawBitmap(particle.getParticleImage(), matrix, paint);
    canvas.restore();
}

}

}

展开
收起
爵霸 2016-06-16 08:19:47 4543 0
1 条回答
写回答
取消 提交回答
  • 这段代码中canvas.save();canvas.restore();没有意义,你画图没有旋转或者位移等操作。去掉后看看。
    如果去掉后效果变了,那确认一下其他地方代码没有对canvas进行rotate或者Translate等操作。

    2019-07-17 19:40:10
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载