Эд, спасибо за поддержку.

ожноDrawable загружен из ресурса, будет вращаться, когда он обращается? Например, я хотел бы нарисовать стрелку и иметь возможность поворачивать ее в разные стороны, когда она рисуется?

 Computerish21 янв. 2011 г., 22:09
Вопрос совсем другой, но я думаю, что ответ может быть связан.

Ответы на вопрос(4)

выполнить (n обратное) преобразование холста вместо преобразования рисуемого

private BitmapDrawable drawable; // or Drawable

protected void onDraw(Canvas canvas) { // inherited from View 
  //...
  canvas.save();
  canvas.rotate(degrees, pivotX, pivotY);
  drawable.draw(canvas);
  canvas.restore();
  //...
}

если у вас есть BitmapDrawable, может быть желательно повысить качество вывода, установив сглаживание

,drawable.setAntialias(true);
 Ewoks25 нояб. 2014 г., 12:07
небольшая проблема в том, что рисование здесь всегда вращается вокруг (0,0) как точка поворота
 android developer27 янв. 2014 г., 09:13
Вы не пропустите реализацию функции onMeasure?
 Mario Lenci12 июл. 2012 г., 12:36
я думаю, что это самое эффективное решение на данный момент
 Ridcully14 июл. 2012 г., 21:53
На самом деле canvas.rotate () должно быть сделанодо рисование рисованного.
Решение Вопроса

рисованию:

Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.image2);
Bitmap bmResult = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888);
Canvas tempCanvas = new Canvas(bmResult); 
tempCanvas.rotate(90, bmpOriginal.getWidth()/2, bmpOriginal.getHeight()/2);
tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);

mImageView.setImageBitmap(bmResult);

В этом примере кода происходит поворот на 90 градусов над центром изображения.

 Zelimir22 янв. 2011 г., 08:17
Хорошо, если вам нужно сделать изображение полупрозрачным или вам нужна функция масштабирования, вы можете проверить этоstackoverflow.com/questions/4688306/...
 Zelimir30 мая 2011 г., 10:56
У меня тоже отлично работает. С какой проблемой вы сталкиваетесь?
 android developer18 мая 2014 г., 14:26
Другой возможный способ поворота растрового изображения, но без создания временного растрового изображения в куче (который может занимать много места вместе с исходным), можно найти здесь:github.com/AndroidDeveloperLB/AndroidJniBitmapOperations
 Zelimir11 дек. 2013 г., 17:39
Как я и спросил пару лет назад :), с какой проблемой вы сталкиваетесь?
 Jay28 мая 2011 г., 04:36
Хорошо работает, если исходное растровое изображение имеет квадратную форму:) .... что если это не так?

ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);

ссылка на источник:

http://developer.android.com/guide/topics/graphics/2d-graphics.html#tween-animation

 Someone Somewhere15 мар. 2012 г., 21:30
Эд, спасибо за поддержку.
 edthethird14 мар. 2012 г., 01:16
На самом деле, вы можете выполнять повороты (на одном Drawable) с анимацией движения.developer.android.com/guide/topics/resources/...
 fredley21 янв. 2011 г., 21:47
Не то, что хотел спрашивающий, это вращение между сериями изображений, то, что требовалось, было плоским вращением единственного изображения!

поэтому я немного изменил его код.

private Bitmap rotateDrawable(@DrawableRes int resId) {
    Bitmap bmpOriginal = BitmapFactory.decodeResource(getResources(), resId);
    Bitmap bmpResult = Bitmap.createBitmap(bmpOriginal.getHeight(), bmpOriginal.getWidth(), Bitmap.Config.ARGB_8888);
    Canvas tempCanvas = new Canvas(bmpResult);
    int pivot = bmpOriginal.getHeight() / 2;
    tempCanvas.rotate(90, pivot, pivot);
    tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);
    return bmpResult;
}

mImageView.setImageBitmap(rotateDrawable(R.drawable.some_image));

Ваш ответ на вопрос