بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
چطوری میشه این رو برنامه نویسی کرد؟
میخوام برای یه دکمه(image) که در وسط صفحه قرار داره کدی رو بنویسیم که وقتی سمت راست کشیده میشه و رها شد پیغامی چاپ بشه یا هر چیز دیگه و برای سمت چپ نیز همین طور کسی هست کمک کنه؟
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
ajn91
12 سال پیش
+3
0
امیدوارم این کد کمکت کنه که یک Custom Control هست نواقصی داره ولی خب سعی کردم اون چیزی که میخوای رو پیاده کنم و یک سرنخی واسه برنامت باشه خودت میتونی مشکلاتشو برطرف کنیو بهینش کنی
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.ImageView;
import android.widget.RelativeLayout;
public class CustomImageView extends ImageView
{
int orginalLeftMargin;
int dx;
boolean isleft = false;
public CustomImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public CustomImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomImageView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) getLayoutParams();
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
dx = (int) motionEvent.getX();
orginalLeftMargin = layoutParams.leftMargin;
break;
case MotionEvent.ACTION_MOVE:
int x = (int) motionEvent.getX();
int leftMargin = (layoutParams.leftMargin + (x - dx));
layoutParams.leftMargin = leftMargin;
setLayoutParams(layoutParams);
if (leftMargin > 0) {
isleft = false;
} else {
isleft = true;
}
break;
case MotionEvent.ACTION_UP:
layoutParams.leftMargin = orginalLeftMargin;
setLayoutParams(layoutParams);
if (isleft) {
Log.i("LOG", "Left");
} else {
Log.i("LOG", "Right");
}
break;
}
return true;
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .