JavascriptProva

martedì 9 agosto 2016

Si inizia a studiare i FAB.

Cerco di impadronirmi della scienza necessaria per costruire un FAB, che sarebbe una bellissima cosa.

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