saeidd
چهارشنبه 12 آذر 1393, 19:04 عصر
با سلام خدمت دوستان عزیز.
من در برنامه ام از ImageView به عنوان دکمه استفاده می کنم. برای اینکار برای هر ImageView هم متد SetOnTouchListener رو استفاده می کنم و هم SetOnClickListener. به این ترتیب که در متد SetOnTouchListener شکل دکمه رو هنگام لمس عوض می کنم و در متد SetOnClickListener هم مثلا کد رفتن به اکتیویتی بعدی رو می نویسم.
برنامه به درستی کار می کنه. فقط مشکلش اینه که بعضی وقتها -تاکید می کنم فقط بعضی وقتها- وقتی کاربر ImageView رو لمسش می کنه و سریع انگشتشو برمیداره، انگار برنامه اجازه پیدا نمی کنه که عکس حالت لمس رو نمایش بده و باید رویداد Onclick رو اجرا کنه؛ در نتیجه خطا میده و میاد بیرون.
توضیح اینکه دوتا عکسی که برای حالت نرمال و حالت لمس در نظر گرفتم، هر کدوم حدود 60 کیلوبایت هستن. این خطا به خاطر حجم زیاد عکسهاست یا کدهام مشکلی داره که اینطور میشه؟
این هم کد:
btnsetting.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(Main.this, Setting.class);
startActivity(i);
overridePendingTransition(R.anim.in, R.anim.out);
}
});
btnsetting.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
switch (arg1.getAction()) {
case MotionEvent.ACTION_DOWN: {
btnsetting.setImageResource(R.drawable.btnsetting_ down);
break;
}
case MotionEvent.ACTION_UP:{
btnsetting.setImageResource(R.drawable.btnsetting_ up);
break;
}
}
return false;
}
});
من در برنامه ام از ImageView به عنوان دکمه استفاده می کنم. برای اینکار برای هر ImageView هم متد SetOnTouchListener رو استفاده می کنم و هم SetOnClickListener. به این ترتیب که در متد SetOnTouchListener شکل دکمه رو هنگام لمس عوض می کنم و در متد SetOnClickListener هم مثلا کد رفتن به اکتیویتی بعدی رو می نویسم.
برنامه به درستی کار می کنه. فقط مشکلش اینه که بعضی وقتها -تاکید می کنم فقط بعضی وقتها- وقتی کاربر ImageView رو لمسش می کنه و سریع انگشتشو برمیداره، انگار برنامه اجازه پیدا نمی کنه که عکس حالت لمس رو نمایش بده و باید رویداد Onclick رو اجرا کنه؛ در نتیجه خطا میده و میاد بیرون.
توضیح اینکه دوتا عکسی که برای حالت نرمال و حالت لمس در نظر گرفتم، هر کدوم حدود 60 کیلوبایت هستن. این خطا به خاطر حجم زیاد عکسهاست یا کدهام مشکلی داره که اینطور میشه؟
این هم کد:
btnsetting.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent i = new Intent(Main.this, Setting.class);
startActivity(i);
overridePendingTransition(R.anim.in, R.anim.out);
}
});
btnsetting.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
switch (arg1.getAction()) {
case MotionEvent.ACTION_DOWN: {
btnsetting.setImageResource(R.drawable.btnsetting_ down);
break;
}
case MotionEvent.ACTION_UP:{
btnsetting.setImageResource(R.drawable.btnsetting_ up);
break;
}
}
return false;
}
});