Android: Grafica 2D, le basi

I compontenti di base per poter fare grafica 2D con android sono:
la View, che tramite le chiamate al suo metodo onDraw ci permette di ridisegnare lo schermo.
il Canvas, la classe che contiene le api fondamentali per disegnare (es.  drawLine(), drawCircle(), etc.) su una immagine(bitmap) .
la Bitmap, che contiene i pixel, ossia l’immagine vera e propria.
un Paint, che descrive i colori e gli stili per disegnare.

con l’esempio sotto disegniamo un rettangolo rosso

Bitmap bitMapEsempio = BitmapFactory.decodeResource(res, R.drawable.qualche img);
Canvas canvasMaschera = new Canvas(bitMapEsempio);
Paint paint = new Paint();
paint.setColor(Color.RED);
canvasMaschera.drawRect(left, top, right, bottom, paint);// se paint è null si hanno immagini opache

non alllocare troppi oggetti  nel metodo View.onDraw, questo metodo viene richiamato tante volte, e quindi potrebbe rallentare  di molto l’app.

Android: Toast con Immagine e vibrazione

Codice per visualizzare un Toast di Android con una immagine e  vibrazione:

package com.AndroidImageToast;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class ImageToastExample extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
Toast toast1 = new Toast(getBaseContext());
       LinearLayout toastLayout = new LinearLayout(getBaseContext());
       toastLayout.setOrientation(LinearLayout.HORIZONTAL);
       ImageView image = new ImageView(getBaseContext());
       TextView text = new TextView(getBaseContext());
       image.setImageResource(R.drawable.radiazioni);
       toastLayout.addView(image);
       toastLayout.addView(text);
       toast1.setView(toastLayout);
       toast1.setGravity(Gravity.CENTER | Gravity.CENTER, 0, 0);

Vibrator v = (Vibrator) getApplicationContext()
.getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(300);


toast1.show();
    }
}