2011-04-01 13 views
2

次のビューを使用してビットマップを描画し、それを移動します。開始アクティビティでAndroid:ボタンとカスタムビューを追加する方法

public class DrawView extends View { 
    private ColorBall ball; 
    public DrawView(Context context) { 
    super(context); 
    setFocusable(true); 
    ball = new ColorBall(context,R.drawable.bol_groen, points); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) {  
     canvas.drawBitmap(ball.getBitmap(), ball.getX(), ball.getY(), null); 
    } 

    public boolean onTouchEvent(MotionEvent event) {   
    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
       // do stuff... 
    } 
} 

、レイアウトがsetContentView(new DrawView(this));

を使用して設定されている私が欲しい、私はボタンをクリックしたときに、画面にボタンを追加して、私は新しいビットマップを追加することにしたいです。この画面にボタンを追加するにはどうすればいいですか?

EDIT:これは、XMLから私のmain.xml

<?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" > 
<Button android:text="Button" 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
</Button> 
<com.example.DrawView 
android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 
</LinearLayout> 

答えて

3

設定アクティビティのレイアウトです。ボタンとカスタムビューを表示します(表示したくない場合はGONEにします)。

しかし、あなたはあなたのビュー

public DrawView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    setFocusable(true); 
    ball = new ColorBall(context,R.drawable.bol_groen, points); 
} 
+0

感謝のための1つ以上のコンストラクタを持っている必要があり、それをする前に。上記のxmlは正しいですか?ビットマップが表示されていません。 –

+0

@rohith私はレイアウトは大丈夫だと思います。私はオーバーライドonMeasureメソッドなしで私のカスタムビューを作ったことはありません。あなたのビューの実際のサイズと描画されたビットマップの座標を知るには、ログイン方法を使用してみてください。 – Maxim

+0

ありがとうございます。それは働いた。また、ボタンをクリックしてビットマップを追加する方法を教えてください。 –

関連する問題