creé una vista personalizada Circleview así:lienzo no dibuja en vista personalizada
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);
}
}
Entonces lo incluí en mi raíz de disposición de Actividad <RelativeLayout>
:
<com.turkidroid.test.CircleView
android:id="@+id/circle_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true" />
Sin embargo, nada se ha elaborado!
- ¿Estoy implementando la Vista personalizada derecho?
- ¿O es así como utilicé la Vista personalizada?
algo de información:
- Tanto Circleview y MyActivity están en el mismo paquete:
com.turkidroid.test
. - En el método
onDraw()
, traté de incluirsuper.onDraw()
y comentarlo. - Sé que puedo dibujar un círculo con enfoques mucho más simples, pero mi CircleView contiene contiene más que dibujar un círculo. Necesito hacer que sea una Vista personalizada.
Se lanza 'java.lang.StackOverflowError' después de añadir el método de los constructores! ¿Algunas ideas? – iTurki
Tu sugerencia funcionó como un amuleto después de que 'no comento super.onDraw() 'desde mi código. ¡Gracias! – iTurki
No estoy seguro de lo que era, mi llamada super.overraw faltaba y la bandera de arriba también se estableció en el valor predeterminado, pero después de poner ambas magia sucedió !!^_^ –