Android实现控件View移动控制。

看文章
Android中通过ViewHelper.setTranslationY实现View移动控制(NineOldAndroids开源项目)
下载nineoldandroids-2.4.0.jar。导入项目。

public class View extends Button {

    //记录上次滑动后的坐标值
    private int lastX;
    private int lastY;

    public MyView(Context context) {
        super(context);
    }
    public MyView(Context context, AttributeSet attrs){

        super(context, attrs);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // 获取view相对于手机屏幕的xy值
        int x = (int) event.getRawX();
        int y = (int) event.getRawY();
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:

                break;
            case MotionEvent.ACTION_MOVE:
                int deltaX = x - lastX;
                int deltaY = y - lastY;
                int translationX = (int) (ViewHelper.getTranslationX(this) + deltaX);
                int translationY = (int) (ViewHelper.getTranslationY(this) + deltaY);
                ViewHelper.setTranslationX(this, translationX);
                ViewHelper.setTranslationY(this, translationY);

                break;
            case MotionEvent.ACTION_UP:
                break;
            default:
                break;
        }
        lastX = x;
        lastY = y;
        return true;
    }
}

布局

    <com.example.android.View
        android:id="@+id/view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="可以滑动"/>

你可能感兴趣的:(android,控件,移动,编程代码)