2011-10-03 11 views
-1

私のコードで何が間違っていますか?スクリーン上で私のカスタムビューを描画していません。私のアプリケーションでCustomView図面で問題が発生する

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); パス=新しいパス(); 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誰でも知っている人.Plz help。

+0

の言う.. '' rl'忘れる 'setContentView(ビュー)してみてくださいRelativeLayout

に追加するために使用するLayoutParamsを指定する必要があります私はそれを描画する場合 –

+0

はいそれはrelativelayoutなし描画です。それはrelativelayoutの問題は何ですか? –

+0

'rl.addView(view、params);' 'params'は' RelativeLayout.LayoutParams'として定義する必要があります –

答えて

2

あなたのviewだからだけでなくrl.addView(view)

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

1つの質問。私たちがlayoutparamsを指定していない場合、shudはデフォルトのパラメータを正しく受け取りますか?しかし、それは取っていない。なぜ? –

+0

私はあなたのCustomViewはとても生のクラスだと思います。あなたは幅と高さを扱っていないかもしれません。したがって、デフォルトが 'WRAP_CONTENT'の場合、ビューの幅と高さがゼロになる可能性があります。私はちょうど推測している。わからない。 –

関連する問題