Tengo tres archivos El XML, la función de dibujo y la actividad principal. Tengo algunos LinearLayouten mi archivo XML.
<LinearLayout android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:layout_weight="1">
    <LinearLayout android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:layout_weight="1"
                  android:background="#ef3"
                  android:id="@+id/img01"/>
    <LinearLayout android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:layout_weight="1"
                  android:background="#E8A2B4"
                  android:id="@+id/img02"/>
</LinearLayout>
Esta es la función de dibujar:
public class getBorder extends TextView {
    public getBorder(Context context) {
        super(context);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setColor(android.graphics.Color.RED);
        canvas.drawLine(0, 0, this.getWidth() - 1, 0, paint);
        canvas.drawLine(0, 0, 0, this.getHeight() - 1, paint);
        canvas.drawLine(this.getWidth() - 1, 0, this.getWidth() - 1,
            this.getHeight() - 1, paint);
        canvas.drawLine(0, this.getHeight() - 1, this.getWidth() - 1,
            this.getHeight() - 1, paint);
    }
}
Y esta es la actividad principal:
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final getBorder getBorder = new getBorder(this);
    final LinearLayout img01 = (LinearLayout) findViewById(R.id.img01);
    img01.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            getBorder.setWidth(100);
            getBorder.setHeight(100);
            img01.addView(getBorder);
        }
    });       
}
El programa podría llamar la frontera, pero el tamaño no encajaba en el LinearLayout. Y cuando hago clic de LinearLayoutnuevo, el programa se bloquea.
Otra cosa, quiero dibujar dos círculos en el centro de la LinearLayout, pero ¿cómo podría averiguar las coordenadas del centro?

LinearLayoutcolor de borde, obtuve un relleno sólido, a menos que agregue el siguienteshapeelemento secundario al elemento:<solid android:color="@android:color/transparent" /><solid android:color="@color/lighter_gray" />contrario obtuve un fondo negroExtienda LinearLayout / RelativeLayout y úselo directamente en el XML
fuente
onDraw()método, cree sus objetos en uninit()método, llamado por el constructor y reutilícelos en elonDraw()método. La asignaciónonDraw()(llamada 60 veces por segundo) conduce a un bajo rendimiento, descarga de batería, etc.