java代码如下,只有第一个圆被画出来了。
public class AndroidTest extends Activity {
private LinearLayout layout;
private LinearLayout.LayoutParams params1, params2;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        layout = (LinearLayout)findViewById(R.id.rootLayout);
        params1 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        params2 = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        MyView myView1 = new MyView(this, 100, 100, 50);
        myView1.setColor(Color.MAGENTA);
        myView1.layout(50, 50, 150, 150);
        myView1.setOnClickListener(new OnClickListener() { public void onClick(View v) {
// TODO Auto-generated method stub
setTitle("MyView");
}
        
        });
        layout.addView(myView1, params1);
        
        MyView smallCircle = new MyView(this, 125, 200, 25);
        smallCircle.setColor(Color.GREEN);
        smallCircle.layout(100, 175, 150, 225);
        layout.addView(smallCircle, params2);
        
    }
    
    public class MyView extends View {
     private float m_cx;
     private float m_cy;
     private float m_radius;
     private Paint paint;
    
     MyView(Context context, float cx, float cy, float radius) {
     super(context);
     m_cx = cx;
     m_cy = cy;
     m_radius = radius;
    
     // 首先定义一个paint 
paint = new Paint(); 

// 绘制矩形区域-实心矩形 
// 设置颜色 
paint.setColor(Color.BLUE); 
// 设置样式-填充 
paint.setStyle(Style.FILL);
     }
    
     public void setColor(int color) {
     // 设置颜色 
paint.setColor(color);
     }
    
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas); // draw circle
canvas.drawCircle(m_cx, m_cy, m_radius, paint);
}
    
    }
}

解决方案 »

  1.   

    myView1.layout(50, 50, 150, 150);
    smallCircle.layout(100, 175, 150, 225);
    这两个layout不是挡住了么?,root怎么配置的?你还不如全都代码创建layout呢
      

  2.   

    或者你再定义一个MyView1也继承view试试,然后应该就没问题了
      

  3.   

    root什么都没配置,按照默认的 ,只有一个TextView
    我只是在给root的layout加了一个id
      

  4.   

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/rootLayout"
        >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
    </LinearLayout>
      

  5.   

         
         @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         // TODO Auto-generated method stub
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        
         setMeasuredDimension(200, 200);
        }
    在myView写这个试试
      

  6.   

    覆盖了,用FramLayout布局就可以了。