我的应用程序中的 CustomView 绘图问题

发布于 2024-12-07 22:09:44 字数 835 浏览 0 评论 0原文

我的代码有什么问题。为什么它没有在屏幕上绘制我的自定义视图。

class CustActivty extends Activty{
private ShapeDrawable mDrawable;;
Path path;

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.imagelayout);
CustomView view=new CustomView(getApplicationContext());
RelativeLayout rl=(RelativeLayout)findViewById(R.id.relativeLayout1);
rl.addView(view);
}


class CustomView extends View{

CustomView(Context context){

超级(上下文); 路径=新路径(); RectF rec=new RectF(10,10,400,400);

path.addArc(rec,90,180);

mDrawable = new ShapeDrawable(new PathShape(path,400,400));
mDrawable.setBounds(10, 10, 400,400);
mDrawable.getPaint().setColor(0xff74AC23);
}
protected void onDraw(Canvas canvas){
 mDrawable.draw(canvas);

}
}
}

请任何有想法的人。请帮忙。

What is wrong in my code here.why it is not drawing my customview on screen.

class CustActivty extends Activty{
private ShapeDrawable mDrawable;;
Path path;

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.imagelayout);
CustomView view=new CustomView(getApplicationContext());
RelativeLayout rl=(RelativeLayout)findViewById(R.id.relativeLayout1);
rl.addView(view);
}


class CustomView extends View{

CustomView(Context context){

super(context);
path=new Path();
RectF rec=new RectF(10,10,400,400);

path.addArc(rec,90,180);

mDrawable = new ShapeDrawable(new PathShape(path,400,400));
mDrawable.setBounds(10, 10, 400,400);
mDrawable.getPaint().setColor(0xff74AC23);
}
protected void onDraw(Canvas canvas){
 mDrawable.draw(canvas);

}
}
}

Plz anybody having idea.Plz help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白首有我共你 2024-12-14 22:09:44

您应该指定 view 将使用的 LayoutParams 添加到 RelativeLayout

,而不只是 rl.addView(view)

RelativeLayout.LayoutParams params = //initialise them as you want
rl.addView(view, params);

You should specify the LayoutParams that your view will use to be added to the RelativeLayout

So instead of just rl.addView(view)

RelativeLayout.LayoutParams params = //initialise them as you want
rl.addView(view, params);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文