Analizziamo il codice traducendolo in termini umani...
public class HUD extends Service { HUDView mView; @Override public IBinder onBind(Intent intent) { return null; }Viene creato un semplice Service, con il relativo metodo obbligatorio da istanziare onBind... e la dichiarazione di una variabile mView di tipo HUDView. Che tipo sarà questo? Presumibilmente una classe creata ad hoc. Andiamo a cercarla?
Eccola:
class HUDView extends ViewGroup { private Paint mLoadPaint; public HUDView(Context context) { super(context); Toast.makeText(getContext(),"HUDView", Toast.LENGTH_LONG).show(); mLoadPaint = new Paint(); mLoadPaint.setAntiAlias(true); mLoadPaint.setTextSize(10); mLoadPaint.setARGB(255, 255, 0, 0); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawText("Hello World", 5, 15, mLoadPaint); } @Override protected void onLayout(boolean arg0, int arg1, int arg2, int arg3, int arg4) { } @Override public boolean onTouchEvent(MotionEvent event) { //return super.onTouchEvent(event); Toast.makeText(getContext(),"onTouchEvent", Toast.LENGTH_LONG).show(); return true; } }Spostiamo il focus su questa.
private Paint mLoadPaint; private Paint mLoadPaint;Viene dichiarata una variabile di tipo Paint.
E dato che non ricordo bene come funziona tutto il complesso delle istruzioni coinvolgenti Paint, Canvas e onDraw è bene che vada a rivedermelo.
Tengo presente il mio riferimento.
Il focus si sposta su Paint, Canvas e onDraw.
Nessun commento:
Posta un commento