0

私はアンドロイドの初心者です。onDrawに画像ボタンを追加したい。私はこのようにできるのだろうか。コンパイルエラーはありません。しかし、シミュレーターは「残念ながらMyAppは停止しました」と言っています。2番目の質問は、画面のx、yの位置にボタンを追加するにはどうすればよいですか?addViewには位置パラメータはありません。

protected class MyLayout extends LinearLayout {
    ImageButton button;
    public MyLayout(Context context) {
        super(context);
        setWillNotDraw(false);
        button = new ImageButton(context);
        button.setImageBitmap(buttonBitmap); // buttonBitmap is loaded in onCreate
    }
    public void onDraw(Canvas canvas) {
        addView(button);
    }
}
4

1 に答える 1

0

onDraw()オーバーライド関数のカスタムlinearlayoutにボタンを追加することはありません。onDrawは定期的に呼び出されます(たとえば、要素のサイズが変更された場合)。したがって、onDraw()が呼び出されるたびに同じボタンを追加します。また、同じアイテムを複数回追加するとエラーが発生します。

正確に何をしようとしていますか?線形レイアウトにボタンを追加するだけの場合は、レイアウトを拡張せずに追加できます。

于 2012-04-10T17:17:40.943 に答える