آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چطوری میشه این رو برنامه نویسی کرد؟

underomeda  12 سال پیش  12 سال پیش
+2 0

میخوام برای یه دکمه(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;
    }

}

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