2012-03-12 4 views
0

Я искал через этот сайт, чтобы узнать, как повернуть изображение взад и вперед и придумал мой собственный с помощью другого сообщения на этом сайте, он отлично работает, единственная проблема заключается в том, теперь я заработал, чтобы он вращался взад-вперед, как мне нравится, как я теперь позиционирую его на экране? Heres кода до сих пор:android positioning drawBitmap, который использует rect

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 я использую его, чтобы позиционировать свои изображения, но это один использует СРК, и В вместо для размера прямоугольника, так что теперь он прекрасно работает, но как бы я изменить положение на экране от 0,0 до места, куда я хочу идти?

это было принято частично или главным образом с этого поста: Sprite Rotation in Android using Canvas.DrawBitmap. I am close, what am I doing wrong?

Который дал мне все, что мне нужно, чтобы получить это происходит, кроме как установить х и у позиции на экране, любая помощь с этим было бы значительно оценил, что я разрушал свои мозги, пытаясь найти способ установить этот набор позиций x и y без везения и, вероятно, что-то простое. Спасибо заранее.

ответ

0

Это кусок кода из этого другого поста вы ссылка:

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

Это х и у в Dst Rect, которые определяют расположение растрового изображения.

Ваш код:

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

Собирается всегда рисовать его в 0, 0, поскольку ширина - ширина будет равна 0, а высота - высота будет 0.

+0

это было глупо с моей стороны, хорошо я получил эту часть, спасибо за это, но теперь я столкнулся с другой проблемой, когда я установил dst и добавлю 50 ко всему, что теперь не вращается должным образом, даже если я добавлю одинаковые числа к src и dst, он будет вращаться все это ворчливое (если это слово), но если у меня есть все, как у меня, то он отлично вращается, это проблема масштабирования? Я попробовал dst = newRect (50,50,50 + width, 50 + height) – user870286

+0

неважно, что я идиот lol Я забыл добавить 50 к другой части, а также canvas.rotate (mRot, 50 + (ширина/2), 50 + (высота/2)); теперь все отлично работает, спасибо за ответ на этот простой для меня, я ценю время, которое вы взяли для этого. – user870286

Смежные вопросы