2011-07-22 12 views
11

Mam bitmapę na canvas.i trzeba wyrównać bitmapę do środka płótna (środek obrazu powinien znajdować się w środku canvas.in moje wymaganie, nie powinien dawać stałych punktów do wyrównania bitmapy). While zobacz portret jak skalować płótno i obraz odpowiedni do rozdzielczości?jak wyrównać centrum bitmapy wewnątrz płótna w systemie Android?

public void onDraw(Canvas canvas) { 
    Bitmap imgtable = BitmapFactory.decodeResource(getResources(), R.drawable.table_01); 
    canvas.drawColor(Color.TRANSPARENT); 
    canvas.drawBitmap(imgtable, 10, 10, null); 

    } 
+0

Znamienny jest również rozwiązanie zaproponowane [w tym powiązane pytanie] (http://stackoverflow.com/questions/8143321/how-to-align-center -a-bitmap) – Dr1Ku

Odpowiedz

31

Chociaż nie wiem konkretnych metod na uzyskanie szerokości płótna i szerokość bitmapy w Android, aby umieścić mapę bitową na środku zazwyczaj coś takiego.

centreX = (canvasWidth - bitmapWidth) /2 

centreY = (canvasHeight - bitmapHeight) /2 

Następnie umieścić swój wizerunek na Centrex, centreY

+0

, ale w moim przypadku wystąpił problem. Oznacza to, że mój obraz pasuje do trybu poziomego.Albo w trybie portrate obraz przepełnia ekran. –

+0

@KIRANKJ Czy rozwiązałeś problem? Mam ten sam problem. –

+0

Po obróceniu urządzenia prawdopodobnie trzeba przeliczyć ponownie, aby szerokość stała się wysokością, a wysokość - szerokością. – mbwasi

Powiązane problemy