2012-05-26 21 views
6

Tamam belirli bir konuma içine bitmap döndürülmüş ama saatlerce şaşırıp. Kullanıcının bir resmin üzerine bir boyut çizgisi çizdiği bir uygulama yapıyorum. Şimdi, hattın seçildiğini gösteren bazı seçim noktalarını da boyamak istiyorum. Bu noktalar, çizginin sonunda (ok başından sonra) olması gereken ve okun göre döndürülen belirli bir bitmap'dir. Ben Görünüm genişleten bir sınıf DrawSelectionPoint oluşturduk ve böyle bir şeyle bitmap döndürebilirsiniz:Android - Boya belki burada bir şey eksik tuval

selectionPoint = BitmapFactory.decodeResource(context.getResources(), 
        R.drawable.selectionpoint); 
Matrix matrix = new Matrix(); 
     matrix.postRotate((float)Math.toDegrees(angle));   
canvas.drawBitmap(selectionPoint, matrix, null); 

benim bitmap ama bunu istediğiniz şekilde döndürüldüğünde bu şekilde (açı çizgisinin açısı olduğu) 0,0 değerine boyanmıştır (ekranın sol üst köşesi). (Sonradan geri döndürmek ben döndürülmüş tuval üzerine çizmek beri) ben o zaman çok zor istediğim tam olarak konumu bit eşlem çizmek bulmak

canvas.save(); 

canvas.rotate(); 

canvas.drawBitmap(selectionPoint, x, y, null); 

canvas.restore(); 

gibi bir şey kullanırsanız

. Bazı Öklid dönüşümü dönüşümlerini denedim ama şansım yoktu.

matris dönüş uygulayan ve ayrıca bitmap ihtiyacım puan vermek için bir yol var mı

çekilecek? Şimdiden teşekkür ederim!

cevap

18

bitmap'in (px, py) tuval koordinatlarında merkezinin bulunduğu yerde bitmapi çizmek istediğinizi varsayalım.

matrix.reset(); 
matrix.postTranslate(-bitmap.getWidth()/2, -bitmap.getHeight()/2); // Centers image 
matrix.postRotate(angle); 
matrix.postTranslate(px, py); 
canvas.drawBitmap(bitmap, matrix, null); 
+0

iş gibi görünüyor: Üye değişkeni

Matrix matrix = new Matrix(); 

ve onDraw'da

var! çok teşekkür ederim! – george

+0

onun için çalışmıyor onun hattı ile dönüyor. –

İlgili konular