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

问题描述

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

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

``` public static void drawPic(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();
    }

}

}

但是上面的代码运行的结果是整个画布旋转,而不是画布里的图片旋转,这是为什么?求高手解答。

解决方案

canvas.rotate,你用这个试试

解决方案二:

 这段代码中canvas.save();和canvas.restore();没有意义,你画图没有旋转或者位移等操作。去掉后看看。
 如果去掉后效果变了,那确认一下其他地方代码没有对canvas进行rotate或者Translate等操作。

解决方案三:

不是铺满的,大概的效果图是:我在canvas上画了很多个粒子,我现在想让每个粒子都能旋转起来。

解决方案四:

用Translate

时间: 2024-10-28 18:57:00

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

代码-点击一张图片 该图片可加载到canvas里并实现鼠标移上去可控制该图片旋转 缩放 移动

问题描述 点击一张图片 该图片可加载到canvas里并实现鼠标移上去可控制该图片旋转 缩放 移动 求代码... 类似 解决方案 http://zhidao.baidu.com/link?url=1lDL3pYGpqNztyY7xA8jXwoLUvGgSw5Pmwaa9bDv9DF2w8wUvKlo5jIJsgx9nXmTXdwT2MTAdiR14TsXW51RrmUH6yUkzsIXfjWF0VBBXfe 解决方案二: 实现当点击一张图片的时候,图片会放大,再点击图片的背景的时候,图片会缩放回去

获取canvas-Android自定义View怎样获取到onDraw(Canvas canvas)里的canvas对象啊?

问题描述 Android自定义View怎样获取到onDraw(Canvas canvas)里的canvas对象啊? 自定义了一个View,在初始化时该View会先画一部分图形,然后连接服务器,收到服务器的数据后,再将这些数据画出来,但是原来的图形不变,所以,我的想法是,获取到OnDraw()里的canvas对象,然后用它画图,再更新(即调用该View的postInvalidate()).我在自定义View的类里,设置了一个Canvas变量can,在onDraw(Canvas canvas )方法

多个本地视频如何切换到一个canvas里下面代码会显示多个视频重叠在一起求解啊aaaaa

问题描述 多个本地视频如何切换到一个canvas里下面代码会显示多个视频重叠在一起求解啊aaaaa <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&g

压缩-上传经过canvas处理的图片!!!

问题描述 上传经过canvas处理的图片!!! 用canvas对图片进行压缩,然后用ajax post到后台,后台把图片放到本地的磁盘里,但是最后图片打开之后是空的,里面什么内容都没有..请大神看看原因. 下面是我的关键部分的代码 ajax部分 php部分 在php echo $img那里能返回图编的编码,如下 经过base64_decode解码之后的$data全部都是这样的 最后在E盘打开经过file_put_content处理的图片是一片空白 解决方案 20150129 百度Ueditor

用canvas 实现个图片三角化(LOW POLY)效果_javascript技巧

之前无意中看到Ovilia 用threejs做了个LOW POLY,也就是图片平面三角化的效果,觉得很惊艳,然后就自己花了点时间尝试了一下. 我是没怎么用过threejs,所以就直接用canvas的2d绘图API来做,因为感觉似乎这效果也用不上threejs. 直接上demo先:http://whxaxes.github.io/canvas-test/src/Funny-demo/lowpoly/index.html (也可以在移动端看,不过因为计算量比较大,移动设备计算起来会比PC要多花些时间

HTML5 canvas 9绘制图片实例详解_javascript技巧

绘制图片 Var image=new Image(); image.src=" http://img4.duitang.com/uploads/item/201406/25/20140625182321_4MTau.thumb.700_0.jpeg"; image.onload=function(){} Context.drawImage(image,x,y); Context.drawImage(image,x,y,w,h); Context.drawIamge(image,sx,s

asp.net使用代码从文件夹里读取图片

计象跑马灯效果时,可以用的上,从文件夹里读取图片 DirectoryInfo imagesfile = new DirectoryInfo(Server.MapPath("../images/"));         Repeater1.DataSource = imagesfile.GetFiles("*.jpg");         Repeater1.DataBind(); 引用的时候重要的是路径,路径写成你自己的. 

一款html5 canvas实现的图片玻璃碎片特效

 今天要为大家带来一款html5 canvas实现的图片玻璃碎片特效.图片以玻璃碎片的形式出现到界面中,然后似玻璃被打碎的效果渐消息.效果图如下:   html代码: 代码如下: <img src="city_copy.jpg" id="src_img" class="hidden"> <div id="container" style="-webkit-perspective: 500px;&qu

excel表格里的图片如何保存

  excel里的图片保存步骤如下: 1.下图就是一张放在Excel中的图片,=想要将图片导出,然后保存成图片的格式. 2.首先,尝试鼠标右键单击看看,有没有"图片另存为"的选项,结果发现并没有相应的选项. 3.那么,再点击图片,看看"图片工具"选项卡上是否有相应的选项,结果还是没有. 这是因为Excel在设计的时候是针对数据处理的,并没有相应的保存图片的功能,这就需要其它的载体来帮助进行保存. 4.首先选中图片,鼠标右键单击,然后选择"复制".