Я должен реализовать функции для поворота изображения через onTouchListener(). Пожалуйста, предоставьте мне образец кода для поворота изображения. Пожалуйста, помогите мне.Как повернуть изображение через onTouchListener?
Спасибо заранее.
Я должен реализовать функции для поворота изображения через onTouchListener(). Пожалуйста, предоставьте мне образец кода для поворота изображения. Пожалуйста, помогите мне.Как повернуть изображение через onTouchListener?
Спасибо заранее.
Приведенный код служит для поворота изображения.
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", "");
}
}
вам нужно использовать XML в типе "твин анимации". чем, из кода java вы можете сделать акт представления в соответствии с этим xml. вот ссылка, которая help: http://www.edumobile.org/android/android-beginner-tutorials/tween-animation/
Hi Roiberg, я хочу повернуть это изображение на основе направления onTouch(). Я должен использовать это вращающееся изображение для регулятора громкости. Таким образом, нужно выполнить этот поворот через onTouch Listeners. Если мы используем в xml-файле, то контроль onTouch не произойдет. Спасибо за ваш ответ. – Rajesh
В этом коде изображение вращается, но также меняет свое положение. – Rajesh