6

(コンテキストメニューの場合)長押しと通常の押しの両方を機能させる必要があるイメージビューがあります。どちらか一方を機能させることはできますが、両方を機能させることはできません。私は何を取りこぼしたか?以下のコードは、通常の印刷機でのみ機能します。画面に触れるとすぐに、onTouchコードの実行が開始されます。

 ImageView image = (ImageView)findViewById(R.id.visible_image);
 image.setLongClickable(true);
 image.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent ev) {
        switch (ev.getAction()) {
         case MotionEvent.ACTION_DOWN:
            // disable the screen taps for 500ms
            DecodeActionDownEvent(v, ev, bm2);
         case MotionEvent.ACTION_MOVE:
         case MotionEvent.ACTION_UP:
     }
        return true;
    }
 });
 registerForContextMenu(image);

..。

 @Override
 public void onCreateContextMenu(ContextMenu menu, View v,
     ContextMenuInfo menuInfo) {
    menu.setHeaderTitle("Edit");
    ArrayList<String> menuItems = new ArrayList<String>();
    menuItems.add("Edit page settings");
    menuItems.add("Edit page objects");
    menuItems.add("Edit this object");
    for (int i = 0; i<menuItems.size(); i++) {
        menu.add(Menu.NONE, i, i, menuItems.get(i));
    }
 }
4

3 に答える 3

20

あなたはこのようにそれを試みることができます:

ImageView imageView = (ImageView) findViewById(R.id.ImageView);
imageView.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
                    //your stuff
        return true;
    }
});
imageView.setOnClickListener(new OnClickListener() {
    @Override
    public boolean onClick(View v) {
        //your stuff
        return true;
    }
});
于 2012-05-08T17:49:14.753 に答える
2

x 座標と y 座標を取得するには、タッチ リスナーを設定します。

      ImageView.setOnTouchListener(new View.OnTouchListener()
      {
        public boolean onTouch(View v, MotionEvent event)
        {
           //And u can get x and y values like:

           x = event.getX(); 
           y = event.getY() ;
        }
      }
于 2012-05-08T18:30:00.293 に答える