结果如图
draw_demo_layout.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <FrameLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="0dip" android:id="@+id/sc" android:scrollbars="horizontal" android:layout_weight="1.0"> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/image0" /> </FrameLayout> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Draw" android:onClick="drawHandler"/> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Clear" android:onClick="clearHandler"/> </LinearLayout>DrawView.java
package xyq.demo; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; public class DrawView extends View { public DrawView(Context context) { super(context); setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.FILL_PARENT ,LinearLayout.LayoutParams.FILL_PARENT)); } public DrawView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint p = new Paint(); p.setColor(Color.RED); p.setStrokeWidth(5); canvas.drawLine(50, 50, 100, 150, p); canvas.drawLine(100, 150, 20, 50, p); } }MytesActivity.java
package xyq.demo; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.FrameLayout; public class MytesActivity extends Activity { private FrameLayout container; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.draw_demo_layout); container = (FrameLayout)findViewById(R.id.sc); container.addView(new DrawView(this)); Log.v("test", ""+container.getChildCount()); } public void drawHandler(View target){ container.addView(new DrawView(this)); Log.v("test", ""+container.getChildCount()); } public void clearHandler(View target){ if(container.getChildCount() != 1){ container.removeViewAt(container.getChildCount()-1); } } }