Move two pictures anywhere on the touch screen by tapping and dragging, with touch events in Android.
Create new project with Application name:
Move pictures ; Minimum SDK:
API 21 –
Android 5.0 (Lollipop).
Add two picture (
picture1.png ,
picture2.png ) in
res->drawable folder.
In app->res->layout->
activity_main.xml write the code:
<?xml version="1.0" encoding="utf-8"?>
<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"
android:id="@+id/main"
tools:context=".MainActivity">
<ImageView
android:id="@+id/image1"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:contentDescription="@string/app_name"
android:src="@drawable/picture1" />
<ImageView
android:id="@+id/image2"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:contentDescription="@string/app_name"
android:src="@drawable/picture2" />
</RelativeLayout>
In app->java->
MainActivity.java write the code:
package com.app.toyo.movepictures;
import android.support.v7.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
private ViewGroup mainLayout;
private ImageView image1;
private ImageView image2;
private int xDelta;
private int yDelta;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainLayout = (RelativeLayout) findViewById(R.id.main);
image1 = (ImageView) findViewById(R.id.image1);
image2 = (ImageView) findViewById(R.id.image2);
image1.setOnTouchListener(onTouchListener());
image2.setOnTouchListener(onTouchListener());
}
private OnTouchListener onTouchListener() {
return new OnTouchListener() {
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View view, MotionEvent event) {
final int x = (int) event.getRawX();
final int y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams)
view.getLayoutParams();
xDelta = x - lParams.leftMargin;
yDelta = y - lParams.topMargin;
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view
.getLayoutParams();
layoutParams.leftMargin = x - xDelta;
layoutParams.topMargin = y - yDelta;
layoutParams.rightMargin = 0;
layoutParams.bottomMargin = 0;
view.setLayoutParams(layoutParams);
break;
}
mainLayout.invalidate();
return true;
}
};
}
}
Run app in mobile device or
Emulator (
API 21 – Android 5.0 ) and see how it works.
Follow video
tutorial :
VIDEO
Download this
app for free and install it on your mobile device to see how it works:
https://android-coffee.com/wp-content/uploads/projecs/MovePictures.apk
Download project with
Source Code from here:
https://android-coffee.com/wp-content/uploads/projecs/Movepictures.zip
Please
subscribe here to our YouTube channel. Thank you!
Check next tutorials to learn all about Android.
For further questions leave a message .
Leave a Reply