Hi,

I am trying to write an app which has an ImageView and the app allows
to perform panning on the image. I also want to register context menu
with this ImageView so that on long press Context menu comes up. I
tried playing around with the onTouch method, but could not get it
working.

On long press, i do see context menu. But, while panning also the
context menu comes up. I want that context menu is displayed only when
long press is performed and not while panning. If I return true from
the down event, the context menu fails to come up.

Please find the snippet of the code below for the reference.

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ImageView image = (ImageView) findViewById(R.id.image_id);
        image.setOnTouchListener(this);
        registerForContextMenu(image);
    }

    public boolean onTouch(View view, MotionEvent event)
    {
        switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                        mXPos = event.getRawX();
                        mYPos = event.getRawY();
                        return false;
                case MotionEvent.ACTION_MOVE:
                        float newXPos = event.getRawX();
                        float newYPos = event.getRawY();

                        view.scrollBy((int)(mXPos - newXPos), (int)(mYPos - 
newYPos));
                        mXPos = newXPos;
                        mYPos = newYPos;
                        return true;
                case MotionEvent.ACTION_UP:
                        return false;

                }
        return false;
    }

    public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
        menu.add(Menu.NONE, 0, Menu.NONE, "Item1");
        menu.add(Menu.NONE, 1, Menu.NONE, "Item2");
    }

    private float mXPos, mYPos;

Thanks in Advance.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to