2013-01-06 12 views
16

Eventuali duplicati:
How to make an image fit into a circular frame in androidcome fare piena vista immagine circolare in Android

Voglio un 360 gradi circolare forma di vista, ho trovato le soluzioni correlate sul StackOverflow, ma erano tutti cedenti gli angoli arrotondati nella vista dell'immagine. Ma voglio una visione completa dell'immagine circolare.

Per arrotondati link di visualizzazione dell'immagine angoli sono:

Ogni pensiero.

risposta

33

Prendi il Bitmap:

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

Utilizzare uno shader:

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

Disegnare la tela;

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

impostare l'immagine:

myImageView.setImageBitmap(circleBitmap); 
+1

Quasi capito ... ma voglio che il raggio sia fisso diciamo 30dp (questo è semplice), inoltre voglio che l'immagine che viene visualizzata (circolare) sia dal centro dell'immagine originale ... –

+0

Vuoi per cambiare i parametri di questo metodo: 'c.drawCircle (bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint)'; – nmw

+0

ya ho ottenuto l'immagine, ma sta cambiando la sua posizione nel layout, ci sono molti padding/margine che arrivano a sinistra e in alto ... –

0

Creare un bitmap quindi disegnare sulla sua tela e quindi aggiungere questa bitmap a un'immagine o pulsante o qualsiasi altra cosa desideri.

creare una bitmap:

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

Draw sulla tela bitmap

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

impostazione per imageview

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

Ho dimenticato qualcosa? Crei una bitmap vuota e la imposti come sfondo. Non ha senso così com'è. – nmw

Problemi correlati