English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 컨트롤은 안드로이드 터치 슬라이딩 컨트롤의 구체적인 코드를 공유하여 참고하도록 하였습니다. 구체적인 내용은 다음과 같습니다
1.빈자리 컨트롤 클래스 생성: MyView
public class MyView extends Button{}} //최근 슬라이딩 후의 좌표 값을 기록합니다 private int lastX; private int lastY; public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyView(Context context, AttributeSet attrs){ super(context, attrs); } @Override public boolean onTouchEvent(MotionEvent event) { // 스크린의 xy 좌표에 대한 view를 가져옵니다 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; }
위 코드는 사용자 슬라이딩을 감지하기 위해 onTouchEvent() 메서드를 재정의한 커스텀 버튼 클래스입니다. 슬라이딩에 대해 이야기하는 것이므로, 이동량의 개념이 존재합니다.
translationX、translationY는 View의 좌상단이 부모 레이아웃에 대한 이동량입니다. 세 번째 party nineoldandroids를 통해 애니메이션 슬라이딩을 구현합니다.
ViewHelper.getTranslationY(this)는 해당 View의 이동량을 계산하며, 초기值为0, 왼쪽으로 이동하는值为 음수, 오른쪽으로 이동하는值为 양수.
2.xml 레이아웃
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <com.example.administrator.slide.MyView android:id="@"+id/myview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="나는 드래그할 수 있습니다"/> </RelativeLayout>
이것이 본문의 전체 내용입니다. 여러분의 학습에 도움이 되길 바랍니다. 또한, 예우教程에 대한 지지를 많이 해 주시길 바랍니다.
선언: 본문 내용은 인터넷에서 가져왔으며, 저작권자는 본문의 원저자입니다. 본 웹사이트는 본문에 대한 소유권을 가지지 않으며, 인공적으로 편집된 것이 아니며, 관련 법적 책임을 부담하지 않습니다. 저작권 위반이 의심되는 내용이 있으면 notice#w로 이메일을 보내 주십시오.3codebox.com에 대한 신고를 할 때, #을 @으로 변경하십시오. 관련 증거를 제공하시면, 해당 내용이 저작권 위반으로 확인되면 즉시 해당 내용을 제거할 것입니다.