بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

جابجا کردن یک view در framlayote به وسیله انگشت دست

مدیریت گفتگو
گیر کرده 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام

من به وسیله کد زیر یک عکس رو که در لایوت فرم هست جابه جا می کنم.

مشکل اینجاست که وقتی برای اولین بار روی عکس انگشت می کنم ، عکس یک پرش می کنه بعد کار می کنه و با حرکت انگشت درست جابه جا می شود. بار دوم که انگشت می کنم ، همه چیز خوب کار می کند و بار سوم و بار چهارم و . . .  درست کار می کنه.نمی دونم این بار اول چرا اولش یه پرش انجام میده.

 import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

import android.widget.ImageView;
import android.widget.LinearLayout.LayoutParams;
import android.widget.RelativeLayout;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

ImageView imageView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView)findViewById(R.id.imageView1);

imageView.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int eid = event.getAction();
switch (eid) {
case MotionEvent.ACTION_MOVE:

RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
int x = (int) event.getRawX();
int y = (int) event.getRawY();
mParams.leftMargin = x-50;
mParams.topMargin = y-50;
imageView.setLayoutParams(mParams);


break;

default:
break;
}
return true;
}
});
}




}

نظرات

پاسخ‌ها 1

raeesi 11 سال پیش

 import android.R.drawable;
import android.support.v7.app.ActionBarActivity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
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;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity implements OnTouchListener {
	ImageView _view;
	ViewGroup _root;
	private int _xDelta;
	private int _yDelta;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		_root = (ViewGroup)findViewById(R.id.root);
		  _view = new ImageView(this);
		    _view.setImageResource(R.drawable.example_image);

		    RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 50);
		    layoutParams.leftMargin = 50;
		    layoutParams.topMargin = 50;
		    layoutParams.bottomMargin = -250;
		    layoutParams.rightMargin = -250;
		    _view.setLayoutParams(layoutParams);

		    _view.setOnTouchListener(this);
		    _root.addView(_view);
		}

		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_UP:
		            break;
		        case MotionEvent.ACTION_POINTER_DOWN:
		            break;
		        case MotionEvent.ACTION_POINTER_UP:
		            break;
		        case MotionEvent.ACTION_MOVE:
		            RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
		            layoutParams.leftMargin = X - _xDelta;
		            layoutParams.topMargin = Y - _yDelta;
		            layoutParams.rightMargin = -250;
		            layoutParams.bottomMargin = -250;
		            view.setLayoutParams(layoutParams);
		            break;
		    }
		    _root.invalidate();
		    return true;
	}
	}

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

</RelativeLayout>

 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .