2012-03-31 9 views
0

に画像を描画:キャンバスと私はイメージを描画コード持っているレイアウト

class Panel extends View { 

     public Panel(Context context) { 
      super(context); 
     } 

     @Override 
     public void onDraw(Canvas canvas) { 
      Bitmap _scratch = BitmapFactory.decodeResource(getResources(), R.drawable.calvin_logo_small); 
      canvas.drawColor(Color.WHITE); 
      canvas.drawBitmap(_scratch, x-point, y-point, null); 
     } 
    } 

どのように私は私の活動でこのイメージを描くことができますが、私は5月のレイアウトを変更したくないし。私はレイアウトを持っています:setContentView(R.layout.main);これはキャンバスでこのlauoutに描くことが可能ですか?私はこの活動をしており、このレイアウトには多くの要素があります。私は、キャンバスでクリックする場所のイメージだけを必要とします。これはアイデアです。私はsetContentView(R.layout.main);で活動を開始するアプリケーションを開始します。その後、画面をクリックしてキャンバスをクリックした場所に絵を描きます。これは可能ですか?

答えて

1

コードが正しく動作するはずです。ビューのonTouchEvent()をオーバーライドするだけで、タッチイベントの座標をフィールド変数に格納し、invalidate()ビューにonDraw()が呼び出されるようにします。すでに行ったように画像をレンダーするには、onDraw()の座標を使用してください。

パフォーマンスを向上させるには、ビットマップが変更されない場合はキャッシュできます。

関連する問題