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