شبیه ساز عکس به صورت دکمه (button)
من دو تا عکس دارم که میتونن با هم جابجا بشن، فرض کنید عکس دوم کمی کوچکتر از عکس اولی باشه، وقتی روی عکس کلیک میشه، عکس کوچکتر جایزگزین اون میشه و انگار روی یک دکمه کلیک کردیم و حس داخل رفتن دکمه را به ما میده. من کدهای زیر را نوشتم اما دو تا مشکل وجود داره:
مشکل اول اینه وقتی عکس رو لمس میکنم در عرض یک میلی ثانیه عکس دوم ظاهر میشه و دوباره به عکس اول برمیگرده، دلیلش اینه که کوچکترین تغییر در لمس صفحه به عنوان جابجایی تلقی میشه در حالی که هنوز انگشت به بیرون عکس نرفته.
مشکل دوم اینه که وقتی انگشت به بیرون از مساحت عکس میره میخوام کاری صورت نگیره و تنها وقتی انگشت در ناحیه عکس از صفحه برداشته میشه دستوراتم اجرا بشه.
این کد رو چه جور ویرایش کنم کنم که کار منو انجام بده؟
سلام ، این کدها رو جایگزین کنید ببینید همون چیزیه که میخواین : ( 3 خطی که کامنت new داره جدیده )
oldImage.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
float x = event.getX(); //---> new
float y = event.getY(); //---> new
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
Log.i("Touch", "Touch down");
oldImage.setImageResource(R.drawable.newImage);
break;
case MotionEvent.ACTION_MOVE:
if (x > (view.getWidth()) || x < 0 || y < 0 || y > (view.getHeight())) {//---> new
Log.i("Touch", "Touch move");
oldImage.setImageResource(R.drawable.oldImage);
}
break;
case MotionEvent.ACTION_UP:
Log.i("Touch", "Touch up");
oldImage.setImageResource(R.drawable.oldImage);
Intent intent = new Intent(Home.this, NewClass.class);
Home.this.startActivity(intent);
break;
default:
break;
}
return true;
}
});
case MotionEvent.ACTION_UP:
if (x < (view.getWidth()) && x > 0 && y > 0 && y < (view.getHeight())) {//---> new
Log.i("Touch", "Touch up");
oldImage.setImageResource(R.drawable.oldImage);
Intent intent = new Intent(ActivityMain.this, ActivitySecond.class);
ActivityMain.this.startActivity(intent);
}
break;
البته نام اکتیویتی های خودتو بذار .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .