0

我基本上試圖實現類似於this的東西。不幸的是,這是一個iOS教程。沿着圓形路徑旋轉圖標/視圖,滾動 - Android

我已經搜索了大多數可能的關鍵字以循環方式移動某些東西,但找不到任何開始。 atleast中的任何人都可以提供有關如何在Android上黑客入侵的提示嗎?請。

謝謝。

回答

1

這在自定義控件中很容易實現。只需創建一個擴展View並重寫draw()方法的類。然後,您可以聆聽觸摸並計算用戶旋轉控制的距離。然後,您只需使用該數據旋轉畫布並在其上繪製數字即可。

- = Update = - 當您重寫draw方法時,您將獲得一個Canvas對象。這個對象可以讓你畫出你想要的東西。它看起來像這樣:

@Override 
public void draw(Canvas c) 
{ 
    c.rotate(amount); 
    c.drawBitmap(myImage); 
} 

這是一個鏈接到完整Canvas Documentation

+0

感謝您的答覆,問題是旋轉部分。我如何使一個圖標/圖像按鈕(在我的情況下)在圓形路徑中旋轉,類似於在滾動視圖上上下滾動的效果。我現在幾乎在學習android,請你給我更多的解釋。 – Wesley

+0

已更新的答案。 – CaseyB

2

我用旋轉動畫來旋轉一個點的圖像。

double r = Math.atan2(evt.getX() - turntable.getWidth()/2, turntable.getHeight()/2 - evt.getY()); 
    rotation = (int) Math.toDegrees(r); 

    if (evt.getAction() == MotionEvent.ACTION_MOVE) 
     { 
       x= (int)evt.getX(); 
       y = (int)evt.getY(); 
        rotateAnim = new RotateAnimation(angle,rotation-50,200,100); 
        rotateAnim.setFillAfter(true); 
        ImageView.setanimation(rotateAnim); 
        ImageView.startAnimation(rotateAnim); 
      } 

你也可以用矩陣

float newRot = new Float(rot); 

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.disc); 

    Matrix matrix = new Matrix(); 
    matrix.postRotate(newRot - 50); 

    Bitmap redrawnBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); 
    turntable.setImageBitmap(redrawnBitmap);