SORU
12 Kasım 2010, Cuma


Merkezi bir noktada bir bit eşlem döndürmek için Nasıl Android:

Bu sorunun çözümü için bir gün arıyordum ama hiçbir şey, hatta cevapları burada yardımcı olur. Belgelerine bir şey de açıklamıyor.

Sadece başka bir nesne yönünde bir dönüş yapmaya çalışıyorum. Sorun bit eşlem sabit bir nokta, ama bit eşlem (0,0) yerine etrafında döndürülmüş değildir.

İşte ile sorun yaşıyorum kod:

  Matrix mtx = new Matrix();
  mtx.reset();
  mtx.preTranslate(-centerX, -centerY);
  mtx.setRotate((float)direction, -centerX, -centerY);
  mtx.postTranslate(pivotX, pivotY);
  Bitmap rotatedBMP = Bitmap.createBitmap(bitmap, 0, 0, spriteWidth, spriteHeight, mtx, true);
  this.bitmap = rotatedBMP;

İşin garip tarafı da, 4*/postTranslate() *ve setRotation() şamandıra bağımsız değişken içindeki değerleri değiştirmek önemli değil. Biri yardım etsin lütfen ve bana doğru iter misin? :)

CEVAP
29 Kasım 2010, PAZARTESİ


Aşağıdaki kod dizisi umarım yardımcı olur:

Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight, config);
Canvas canvas = new Canvas(targetBitmap);
Matrix matrix = new Matrix();
matrix.setRotate(mRotation,source.getWidth()/2,source.getHeight()/2);
canvas.drawBitmap(source, matrix, new Paint());

~frameworks\base\graphics\java\android\graphics\Bitmap.java aşağıdaki yöntem denetleyin

public static Bitmap createBitmap(Bitmap source, int x, int y, int width, int height,
        Matrix m, boolean filter)

bu rotasyon ile ne yaptığını açıklamak ve tercüme eder.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LavcoPriceTech

    LavcoPriceTe

    21 AĞUSTOS 2010
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011
  • TheRightTire

    TheRightTire

    14 EKİM 2009