0

Hi i have create one project in that i want to move image around the screen, i have done it successfully by below code

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scaleType="matrix"
    android:src="@drawable/img_lock_normal" />

</RelativeLayout>

And the java code is

    public class MainActivity extends Activity {

int windowwidth;
int windowheight;
private static final int NONE = 0;
private static final int DRAG = 1;
private static final int ZOOM = 2;
private Matrix matrix = new Matrix();
private Matrix savedMatrix = new Matrix();
private LayoutParams layoutParams;
private int mode = NONE;
private float[] lastEvent = null;
// remember some things for zooming
private PointF start = new PointF();

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    windowwidth = getWindowManager().getDefaultDisplay().getWidth();
    windowheight = getWindowManager().getDefaultDisplay().getHeight();
    final ImageView img = (ImageView) findViewById(R.id.imageView1);
    img.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            // drag(event, v);
            return true;
        }
    });

    img.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            LayoutParams layoutParams = (LayoutParams) img
                    .getLayoutParams();
            switch (event.getAction() & MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_DOWN:
                savedMatrix.set(matrix);
                start.set(event.getX(), event.getY());
                mode = DRAG;
                lastEvent = null;
                break;

            case MotionEvent.ACTION_UP:

                layoutParams.leftMargin = windowwidth / 2 - v.getWidth()
                        / 2;
                layoutParams.topMargin = windowheight - v.getHeight();

                img.setLayoutParams(layoutParams);
                break;

            case MotionEvent.ACTION_MOVE:

                int x_cord = (int) event.getRawX();
                int y_cord = (int) event.getRawY();

                if (x_cord > windowwidth) {
                    x_cord = windowwidth;
                }
                if (y_cord > windowheight) {
                    y_cord = windowheight;
                }

                layoutParams.leftMargin = x_cord - v.getWidth() / 2;
                layoutParams.topMargin = y_cord - v.getHeight();

                img.setLayoutParams(layoutParams);
                break;
            default:
                break;
            }
            return true;
        }
    });
}

the image follows my finger it's working fine but when i drag image over bottom it's not working properly i can't describe properly so i have shared video please watch it

Problem with drag image on view ---Youtube

Please anybody can help me

Siddhpura Amit
  • 14,534
  • 16
  • 91
  • 150

0 Answers0