मैं एक मॉड्यूल बना रहा हूं जिसमें मेरे पास दो छवियां हों जब भी मैं एक छवि को छूता हूं, इसे ड्रैग पर उंगली या माउस (एमुलेटर में) का पालन करना चाहिए और यदि यह दूसरी छवि पर आता है तो वे अपनी स्थिति बदलते हैं जहां वे अपनी स्थिति बदलते हैं पहली छवि पहले स्पर्श पर थी (ACTION_DOWN)। मैंने निम्नलिखित कोड लिखा है जिसमें विचार चल रहे हैं लेकिन जब मैं पहली छवि खींचता हूं तो दूसरा भी खींचा जाता है। आगे पदों को बदलने के तरीके पर विचार करना चाहते हैं।दो छवि खींचें
.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/vg"
>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/img1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
गतिविधि फ़ाइल
public class MainActivity extends Activity {
private View selected_item = null;
private int offset_x = 0;
private int offset_y = 0;
Canvas can;
Paint paint;
ImageView img;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewGroup vg = (ViewGroup)findViewById(R.id.vg);
vg.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getActionMasked())
{
case MotionEvent.ACTION_MOVE:
if(selected_item == img) {
int x = (int)event.getX() - offset_x;
int y = (int)event.getY() - offset_y;
int w = getWindowManager().getDefaultDisplay().getWidth() - 100;
int h = getWindowManager().getDefaultDisplay().getHeight() - 100;
if(x > w)
x = w;
if(y > h)
y = h;
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
new ViewGroup.MarginLayoutParams(
100,
100));
lp.setMargins(x, y, 0, 0);
selected_item.setLayoutParams(lp);
}
break;
default:
break;
}
return true;
}
});
img = (ImageView)findViewById(R.id.img);
//timerDelayRemoveView(500, img);
BitmapDrawable drawable = (BitmapDrawable)getResources().getDrawable(R.drawable.imagesl_02);
Bitmap bitmap = drawable.getBitmap();
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 100, 100, true);
img.setImageBitmap(scaledBitmap);
LinearLayout.LayoutParams lp0 = new LinearLayout.LayoutParams(100, 100);
lp0.leftMargin = 0;
lp0.topMargin = 0;
img.setLayoutParams(lp0);
//vg.addView(img, lp1);
// vg.addView(img, 1);
img.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getActionMasked())
{
case MotionEvent.ACTION_DOWN:
offset_x = (int)event.getX();
offset_y = (int)event.getY();
selected_item = v;
Toast.makeText(MainActivity.this, "down",Toast.LENGTH_SHORT).show();
break;
default: break;
}
return false;
}
});
ImageView img1 = (ImageView)findViewById(R.id.img1);
BitmapDrawable drawable1 = (BitmapDrawable)getResources().getDrawable(R.drawable.realimage);
Bitmap bitmap1 = drawable1.getBitmap();
Bitmap scaledBitmap1 = Bitmap.createScaledBitmap(bitmap1, 100, 100, true);
img1.setImageBitmap(scaledBitmap1);
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(100, 100);
lp1.leftMargin = 100;
lp1.topMargin = 100;
img1.setLayoutParams(lp1);
//img.setImageBitmap(scaledBitmap1);
img1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getActionMasked())
{
case MotionEvent.ACTION_DOWN:
// offset_x = (int)event.getX();
// offset_y = (int)event.getY();
selected_item = v;
break;
default:
break;
}
return false;
}
});
}
}
आप किस रिलीज को लक्षित कर रहे हैं? एंड्रॉइड में एक ड्रैगिंग एपीआई है जो हनीकॉम – JRaymond