结果如图
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>
- 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);
- }
- }
- 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);
- }
- }
- }