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);
}
}
}
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);
}
}
}
smallCircle.layout(100, 175, 150, 225);
这两个layout不是挡住了么?,root怎么配置的?你还不如全都代码创建layout呢
我只是在给root的layout加了一个id
<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>
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(200, 200);
}
在myView写这个试试