ho creato una visualizzazione personalizzata CircleView come questo:Tela non disegna in visualizzazione personalizzata
public class CircleView extends LinearLayout {
Paint paint1;
public CircleView(Context context) {
super(context);
init();
}
public CircleView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public void init() {
paint1 = new Paint();
paint1.setColor(Color.RED);
}
protected void onDraw(Canvas canvas) {
//super.onDraw(canvas);
canvas.drawCircle(50, 50, 25, paint1);
this.draw(canvas);
}
}
Poi ho inserito sul mio radice il layout di attività <RelativeLayout>
:
<com.turkidroid.test.CircleView
android:id="@+id/circle_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true" />
Tuttavia, nulla è stato elaborato!
- Sto implementando la vista personalizzata, giusto?
- O è come ho usato la visualizzazione personalizzata?
Alcuni Info:
- Sia CircleView e MyActivity sono nella stessa confezione:
com.turkidroid.test
. - Nel metodo
onDraw()
, ho provato a includeresuper.onDraw()
e commentandolo. - So che posso disegnare un cerchio con approcci molto più semplici ma il mio CircleView sarà contenere più di un cerchio. Ho bisogno di renderlo una visualizzazione personalizzata.
Getta 'java.lang.StackOverflowError' dopo ho aggiunto il metodo per i costruttori! Qualche idea? – iTurki
Il tuo suggerimento ha funzionato come un incantesimo dopo che ho 'non commentato super.onDraw()' dal mio codice. Grazie! – iTurki
non sono sicuro di cosa fosse, la mia chiamata super.ondraw mancava e anche la flag sopra era impostata come predefinita, ma dopo aver inserito entrambe le cose, è successo !!^_^ –