Ricordare sempre di comportarsi come l'acqua, e mai come un sasso.
Intanto si definisce la classe, che estende View:
public class FloatingActionButton extends View { public FloatingActionButton(Context context) { super(context); // TODO Auto-generated constructor stub } }Questo è ciò che mi viene inizialmente, insieme al costruttore.
Ora dichiariamo, come di prassi, una variabile Context e vi poniamo il context preso come parametro del costruttore.
public class FloatingActionButton extends View { Context context; public FloatingActionButton(Context context) { super(context); this.context=context; } }Ecco che la cosa si va complicando.
Nel costruttore viene chiamata una funzione init(Color.WHITE).
Andando più avanti la scopro:
public void init(int FloatingActionButtonColor) { setWillNotDraw(false); setLayerType(View.LAYER_TYPE_SOFTWARE, null); mButtonPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mButtonPaint.setColor(FloatingActionButtonColor); mButtonPaint.setStyle(Paint.Style.FILL); mButtonPaint.setShadowLayer(10.0f, 0.0f, 3.5f, Color.argb(100, 0, 0, 0)); mDrawablePaint = new Paint(Paint.ANTI_ALIAS_FLAG); ...Cosa sono queste? Funzioni e classi...
Dalla terza riga in poi è codice per il disegno, e quindi per il momento lo lascio stare. Mi interesso di setWillNotDraw e setLayerType, cercando se sono definite da qualche parte...
E invece sono metodi dell'oggetto View da cui questa classe eredita.
Per il momento lasciamoli stare, e vediamo oltre.
mButtonPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mi sembrano tutte istruzioni sulle quali posso avere le idee più chiare se vado a rivedermi Paint, Canvas onDraw eccetera... Vado a farlo.
Nessun commento:
Posta un commento