package com.swifty.fillcolor.view;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.TextView;
public class DragedTextView extends TextView {
private static final String TAG = "qt";
private int mPreviousx = 0;
private int mPreviousy = 0;
// a array for save the drag position
private int[] mCurrentLayout = new int[4];
public int[] getCurrentLayout() {
return mCurrentLayout;
}
public DragedTextView(Context context) {
super(context);
}
public DragedTextView(Context context, AttributeSet attribute) {
super(context, attribute, 0);
}
public DragedTextView(Context context, AttributeSet attribute, int style) {
super(context, attribute, style);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (mCurrentLayout[0] != 0 || mCurrentLayout[1] != 0 || mCurrentLayout[2] != 0 || mCurrentLayout[3] != 0)
layout(mCurrentLayout[0], mCurrentLayout[1], mCurrentLayout[2], mCurrentLayout[3]);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
final int iAction = event.getAction();
final int iCurrentx = (int) event.getX();
final int iCurrenty = (int) event.getY();
switch (iAction) {
case MotionEvent.ACTION_DOWN:
mPreviousx = iCurrentx;
mPreviousy = iCurrenty;
break;
case MotionEvent.ACTION_MOVE:
int iDeltx = iCurrentx - mPreviousx;
int iDelty = iCurrenty - mPreviousy;
final int iLeft = getLeft();
final int iTop = getTop();
if (iDeltx != 0 || iDelty != 0) {
mCurrentLayout[0] = iLeft + iDeltx;
mCurrentLayout[1] = iTop + iDelty;
mCurrentLayout[2] = iLeft + iDeltx + getWidth();
mCurrentLayout[3] = iTop + iDelty + getHeight();
postInvalidate();
}
mPreviousx = iCurrentx - iDeltx;
mPreviousy = iCurrenty - iDelty;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_CANCEL:
break;
}
return true;
}
}