2017-01-31 4 views
0

私はレストランテーブル予約用のアンドロイドアプリケーションを開発しています。座標を使って動的な四角形を描画する必要があります。キャンバスに矩形を描画するためにビュークラスを使用しましたが、キャンバスの矩形をクリック可能にすることはできませんでした。誰かがこれで私を助けることができますか?アンドロイドアプリケーションで長方形を描く

+1

この問題は、コードの問題を解決するためのものではありません。マニュアルを探すのが便利です。 – Peppo

+0

そのクラスにも 'OnTouchListener'を実装し、座標のタッチ位置を確認します。 –

+0

これをチェックしてくださいhttp://stackoverflow.com/questions/21515862/attaching-click-handler-to-canvas-drawrect-object質問の詳細を記述し、コードを 'setOnClickListener'に共有してください。 – Shailesh

答えて

0

この目的ではキャンバスを使用しないでください。代わりにアンドロイドの組み込みビューを使用して、動的に作成してください。例えば

:四角形はアプリ上の特定のサイトをお持ちの場合

LinearLayout layout = (LinearLayout)findViewById(R.id.imageLayout); 
while(condition) 
{ 
    ImageView image = new ImageView(this); 
    //set image properties 
    layout.addView(image); 
} 
+0

座標を使用して2つの長方形のサンプルコードを作成し、同時にクリック可能にすることもできますか? –

0

あなたはこれを使用することができます。

Display display; 
int width; 
int width_perc; 
int height; 
int height_perc; 

//INIT 
    display = ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    width = display.getWidth(); 
    width_perc = width/100; 
    height = display.getHeight(); 
    height_perc = height/100; 

relativeL.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      int X = (int) event.getX(); 
      int Y = (int) event.getY(); 
      if((X < (width_perc*95))&&(X > (width_perc*60))){ 
       if((Y < (height_perc*30))&&(Y > (height_perc*5))){ 
        accessCalendar(); 
       } 
      } 
      return false; 
     } 
    }); 
0

私は解決策を見つけたビットマップを描画することで、画面サイズに応じませんむしろ使用されているレイアウトのサイズに描画します。私の場合は線形レイアウト

関連する問題