JavascriptProva

lunedì 15 maggio 2017

Immagini rotonde in Android

Ecco il codice:
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.
Questa la prima parte, la generazione delle bitmaps.
Poi:
  • Si crea il Canvas avente per parametro la bitmap creata ex novo.
  • Si crea il Paint.
Quindi si disegna il cerchio e l'immagine da rendere tonda
  • 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.
Provo a rompere il "Mandala" e rifare tutto da capo...

Okay, direi okay...

Nessun commento:

Posta un commento