2012-04-23 2 views

ответ

0

Приведенный код служит для поворота изображения.

public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.main); 

baseView = (View) findViewById(R.id.baseView); 
turntable = (ImageView) findViewById(R.id.turntable); 

turntable.setOnTouchListener(onTableTouched); 
baseView.setOnTouchListener(onTableTouched); 

}

public android.view.View.OnTouchListener onTableTouched = new android.view.View.OnTouchListener() { 
public boolean onTouch(View v, MotionEvent evt) { 
    double r = Math.atan2(evt.getX() - turntable.getWidth()/2, 
      (turntable.getHeight()/2) - evt.getY()); 
    int rotation = (int) Math.toDegrees(r); 
    Log.i("R is ", ""+r); 
    if (evt.getAction() == MotionEvent.ACTION_DOWN) { 
    } 

    if (evt.getAction() == MotionEvent.ACTION_MOVE) { 
     x= evt.getX(); 
     y= evt.getY(); 
     updateRotation(rotation); 
    } 

    if (evt.getAction() == MotionEvent.ACTION_UP) { 
      // 
    } 
    return true; 
} 
}; 
private void updateRotation(double rot) { 
float newRot = new Float(rot); 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), 
R.drawable.orsl_circle_transparent); 
Matrix matrix = new Matrix(); 
//  matrix.setTranslate(getWindowManager().getDefaultDisplay().getWidth()/2,   getWindowManager().getDefaultDisplay().getHeight()); 
    matrix.postRotate(newRot,bitmap.getWidth()/2,bitmap.getHeight()/2); 
//  matrix.setSinCos(newRot, newRot/2, 100, 100); 
//  matrix.postRotate(newRot); 
    Log.i("THE ROATTION ", " "+ newRot); 

if(y>250) 
{ 
    Bitmap redrawnBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap 
      .getWidth(), bitmap.getHeight(), matrix, true); 
    turntable.setImageBitmap(redrawnBitmap); 
}else 
{ 
    Bitmap redrawnBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap 
      .getWidth(), bitmap.getHeight(), matrix, true); 
    turntable.setImageBitmap(redrawnBitmap); 
    Log.i("GUITAR _IMAGE", ""); 
} 
} 
+0

В этом коде изображение вращается, но также меняет свое положение. – Rajesh

0

вам нужно использовать XML в типе "твин анимации". чем, из кода java вы можете сделать акт представления в соответствии с этим xml. вот ссылка, которая help: http://www.edumobile.org/android/android-beginner-tutorials/tween-animation/

+0

Hi Roiberg, я хочу повернуть это изображение на основе направления onTouch(). Я должен использовать это вращающееся изображение для регулятора громкости. Таким образом, нужно выполнить этот поворот через onTouch Listeners. Если мы используем в xml-файле, то контроль onTouch не произойдет. Спасибо за ваш ответ. – Rajesh

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