android定位一个使用rect的drawBitmap

时间:2012-03-12 23:20:11

标签: android rotation drawbitmap

我搜索了这个网站,了解如何来回旋转图像,并在本网站的其他帖子的帮助下想出了我自己的图像,它的效果很好,唯一的问题是现在我让它工作了所以它我喜欢的方式来回旋转,我现在如何将它放在屏幕上? 继到目前为止的代码:

 private Bitmap ray;
    private  int mRot = -33;
    private boolean goRight = true;

    void onRotDraw(Canvas canvas)
    {
        int width = ray.getWidth();
        int height = ray.getHeight();

        if (mRot > 30){
            goRight = false;
        }
        if (mRot < -30){
            goRight = true;
        }
        if (goRight){
            mRot += 1;
        }else
        {
            mRot -= 1;
        }
               canvas.rotate(mRot,width / 2,height / 2);
               this.Draw_Sprite(canvas, 0, mRot ); 

    }

    public void Draw_Sprite(Canvas c, int whatever, int rot) {  
        //rotating image back and forth
        int width = ray.getWidth();
        int height = ray.getHeight();
         Rect src = new Rect(width - width, height - height, width, height);
         Rect dst = new Rect(width - width, height - height,   width,  height); 
         c.drawBitmap(this.ray, src, dst, null);
    }

通常使用drawBitmap我用它来定位我的图像,但是这个使用src和dst代替矩形的大小,所以现在它工作得很好但是如何将屏幕上的位置从0,0更改为我想要它去吗?

这部分或大部分来自这篇文章: Sprite Rotation in Android using Canvas.DrawBitmap. I am close, what am I doing wrong?

除了如何在屏幕上设置x和y位置之外,哪个给了我所需要的所有内容,对此的任何帮助将非常感激,我一直在努力找到一种方法来破坏我的大脑这设置了x和y位置没有运气,它可能很简单。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

这是您引用的其他帖子的一段代码:

Rect src = new Rect(0, 0, width, height);
Rect dst = new Rect(x, y, x + width, y + height);

dst Rect中的x和y决定了位图的位置。

您的代码:

Rect src = new Rect(width - width, height - height, width, height);
Rect dst = new Rect(width - width, height - height,   width,  height);

总是将它绘制在0,0,因为宽度 - 宽度将为0,高度 - 高度将为0。