Android 사용자 정의 View 드래그 효과 구현

2491 단어 AndroidView끌다
텐 센트 QQ 는 빨 간 점 드래그 효과 가 있 습 니 다.오늘 은 간단 한 사용자 정의 View 드래그 효 과 를 실현 하고 다시 제자리 로 돌아 갑 니 다.QQ 빨 간 점 드래그 를 완전히 모방 하 는 것 이 아 닙 니 다.
일단 효과 도 를 볼 게 요.

실현 절 차 를 간단히 말씀 드 리 겠 습 니 다.
1.클래스 계승 뷰 만 들 기
2.작은 공 을 그립 니 다.
3.onTouchEvent 를 다시 쓰 고 손가락 에 따라 내 려 놓 고 이동 하 며 들 어 올 려 작은 공 을 제어 합 니 다.
4.레이아웃 에서 직접 참조 
먼저 그림 을 한 장 붙 여서 View 의 좌표계 를 보 세 요.

다음은 코드 를 붙 이 고 마지막 으로 소스 코드 를 드 리 겠 습 니 다.

public class CustomView extends View {
 
 private int lastX;
 private int lastY;
 private int startLeft;
 private int startRight;
 private int startTop;
 private int startBottom;
 
 public CustomView(Context context, @Nullable AttributeSet attrs) {
 super(context, attrs);
 }
 
 @Override
 protected void onDraw(Canvas canvas) {
 super.onDraw(canvas);
 //     
 Paint paint = new Paint();
 paint.setStrokeWidth(30);
 paint.setColor(Color.parseColor("#FF0000"));
 paint.setAntiAlias(true);
 paint.setStyle(Paint.Style.FILL_AND_STROKE);
 canvas.drawCircle(getWidth()/2,getHeight()/2,30,paint);
 }
 
 @Override
 public boolean onTouchEvent(MotionEvent event) {
 int action = event.getAction();
 //         
 int x = (int) event.getX();
 int y = (int) event.getY();
 switch (action){
 case MotionEvent.ACTION_DOWN://  ,         
 startLeft = getLeft();
 startRight = getRight();
 startTop = getTop();
 startBottom = getBottom();
 lastX = x;
 lastY = y;
 break;
 case MotionEvent.ACTION_MOVE://  ,         
 int offsetX = x - lastX;
 int offsetY = y - lastY;
 layout(getLeft()+offsetX,getTop()+offsetY,
 getRight()+offsetX,getBottom()+offsetY);
 break;
 case MotionEvent.ACTION_UP://      ,         
 layout(startLeft, startTop, startRight, startBottom);
 break;
 }
 return true;
 }
}
레이아웃 에서 이 사용자 정의 View 를 직접 참조 하면 너비 와 높이 를 고정 시 킬 수 있 습 니 다. 
원본 주소:Android 사용자 정의 보기 단순 드래그 효과
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기