2013-01-06 8 views
16

Powiel możliwe:
How to make an image fit into a circular frame in androidjak zrobić pełną okrągłą widoku obrazu w Android

chcę 360 stopni kolisty kształt zdjęcie Zobacz, znalazłem podobnych rozwiązań na StackOverflow, ale były one wszystkie tworzą zaokrąglone rogi w widoku obrazu. Ale chcę mieć pełny okrągły obraz.

Dla zaokrąglone rogi obrazu widoku linki są:

Wszelkie myśli.

Odpowiedz

33

Pobierz Bitmap:

Bitmap bitmap = getthebitmapyouwanttoshowinacirclefromsomewhere; 
Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); 

używać shaderów:

BitmapShader shader = new BitmapShader (bitmap, TileMode.CLAMP, TileMode.CLAMP); 
Paint paint = new Paint(); 
     paint.setShader(shader); 

Draw płótno;

Canvas c = new Canvas(circleBitmap); 
c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint); 

Ustaw obraz:

myImageView.setImageBitmap(circleBitmap); 
+1

Prawie go dostałem ... ale chcę, aby promień został naprawiony, powiedzmy 30dp (to jest proste), również chcę, aby obraz, który jest wyświetlany (okrągły) był ze środka oryginalnego zdjęcia ... –

+0

Będziesz chciał aby zmienić parametry tej metody: c.drawCircle (bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint) '; – nmw

+0

ya Mam obraz, ale zmieniając jego położenie w układzie, jest dużo paddingu/marginesu na lewo i na górze ... –

0

Utwórz bitmapę, a następnie narysuj jej płótno, a następnie dodaj tę bitmapę do widoku lub przycisku obrazu lub cokolwiek chcesz.

Tworzenie bitmapy:

Bitmap bmp = Bitmap.createBitmap(width, height, config); 

rysować na płótnie bitmapy

Canvas c = new Canvas(bmp); 
c.drawCircle(cx, cy, radius, paint) 

ustawienie do ImageView

img.setBackgroundDrawable(new BitmapDrawable(bmp)); 
+2

czegoś brakuje? Tworzysz pustą bitmapę i ustawiasz ją jako tło. To nie ma sensu. – nmw

Powiązane problemy