public class MainActivity extends Activity { Button button; Button button2; Button button3; ImageView imageView; RelativeLayout mainLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button); button2=(Button)findViewById(R.id.button2); button3=(Button)findViewById(R.id.button3); imageView=new ImageView(this); mainLayout=(RelativeLayout)findViewById(R.id.activity_main); Bitmap bitmap= Bitmap.createBitmap(300,300,Bitmap.Config.ARGB_8888); Bitmap immagine= BitmapFactory.decodeResource(getResources(),R.drawable.facciadaculo); Paint paint=new Paint(); paint.setColor(Color.BLUE); Canvas canvas=new Canvas(bitmap); canvas.drawCircle(bitmap.getWidth()/2,bitmap.getHeight()/2,bitmap.getWidth()/2,paint); Rect rect1=new Rect(0,0,426,426); Rect rect=new Rect(0,0,bitmap.getWidth(),bitmap.getHeight()); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(immagine,rect1,rect,paint); imageView.setImageBitmap(bitmap); mainLayout.addView(imageView); imageView.bringToFront(); } }Descriviamo i passaggi ordinatamente, in modo da cercare di memorizzarli.
- Si crea una nuova bitmap delle dimensioni volute. Però bisogna anche manipolare quella che credo sia la quantità di pixel necessari alla memorizzazione dei colori e dell'alpha, mediante Bitmap.Config.ARGB_8888.
- Si ottiene una bitmap dall'immagine in risorse da rendere circolare.
Poi:
- Si crea il Canvas avente per parametro la bitmap creata ex novo.
- Si crea il Paint.
- Si disegna il cerchio.
- Si predispongono per la bitmap scelta: XferMode, rettangolo di partenza e rettangolo di destinazione.
- Si disegna la bitmap mettendo i parametri rettangolo di partenza e destinazione.
Okay, direi okay...
Nessun commento:
Posta un commento