>source

저는 Android Studio에서 터치패드를 만드는 데 사용할 수 있는 View/Component를 찾고 있었습니다. 서버 측에서 해당 정보를 사용하여 마우스 움직임을 처리하고 에뮬레이트하려면 마우스 움직임을 추적하는 기능이 필요합니다.

그 목적에 가장 적합한 것은 무엇입니까?

스크롤뷰를 말씀하시는건가요?

ImAtWar2021-10-04 18:41:38

정확한 사용 사례는 무엇입니까? 무엇을 위해 그것을 원하십니까?

CinCout2021-10-04 18:41:38

Android 용 블루투스 터치 패드를 작성하려고합니다.

Maksim Kuzmin2021-10-04 18:41:38
  • 답변 # 1

    안타깝게도 Shishdem의 대답은 만족스럽지 못했습니다. 내가 기본적으로 달성하려고 했던 것은 학교 프로젝트를 위한 터치패드의 프로토타입을 만드는 것입니다. 스크롤해야 하는 요소가 포함되어 있고 내 서버 응용 프로그램에서 PC에서 커서를 이동하는 데 처리하기에 적합한 손가락 움직임 정보를 추적해야 했습니다.

    여기서 해결책을 찾았습니다. 터치 및 포인터 움직임 추적

    터치 속도를 생성하고 추적하여 해당 데이터를 내 PC 서버로 추가로 보내고 다음을 통해 마우스 움직임을 시뮬레이션해야 했습니다.java.awt. 로봇이내에onTouchEvent. 구성 요소는 무엇이든 될 수 있습니다.단추나의 경우에는.

    터치패드 보기의 터치 이벤트를 처리하는 클래스의 작업 code는 다음과 같습니다.

    ...
    private VelocityTracker mVelocityTracker= null;
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int index= event.getActionIndex();
        int action= event.getActionMasked();
        int pointerId= event.getPointerId(index);
        switch(action) {
            case MotionEvent.ACTION_DOWN:
                if(mVelocityTracker== null) {
                    mVelocityTracker= VelocityTracker.obtain();
                }
                else {
                    mVelocityTracker.clear();
                }
                mVelocityTracker.addMovement(event);
                break;
            case MotionEvent.ACTION_MOVE:
                mVelocityTracker.addMovement(event);
                mVelocityTracker.computeCurrentVelocity(1000);
                //Log velocity of pixels per second
                //Those values can be used to be sent to the server
                Log.d("Velocity", "X velocity: " + mVelocityTracker.getXVelocity(pointerId));
                Log.d("Velocity", "Y velocity: " + mVelocityTracker.getYVelocity(pointerId));
                break;
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL:
                mVelocityTracker.recycle();
                mVelocityTracker= null;
                break;
        }
        return true;
    }
    ...
    

    충돌 시

    위 링크의 예에는 다음 줄이 없습니다.

    mVelocityTracker.recycle();
    mVelocityTracker= null; //this line
    

    하지만 제 경우에는mVelocityTracker에게없는재활용할 때마다 다음 오류와 함께 충돌합니다.

    2021-10-05 09:30:21.711 4385-4385/com.example.javaapp E/InputEventReceiver: Exception dispatching input event.
    2021-10-05 09:30:21.711 4385-4385/com.example.javaapp E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
    2021-10-05 09:30:21.713 4385-4385/com.example.javaapp E/MessageQueue-JNI: java.lang.IllegalStateException: Already in the pool!
            at android.util.Pools$SimplePool.release(Pools.java:120)
            at android.util.Pools$SynchronizedPool.release(Pools.java:179)
            at android.view.VelocityTracker.recycle(VelocityTracker.java:87)
    

    해당 문제에 대한 추가 정보: VelocityTracker가 Android 4.4에서 충돌을 일으킴

  • 답변 # 2

    그것은 스크롤뷰또는 .

  • 이전 javascript : 속성의 용도
  • 다음 javascript : 내 테이블에 별도의 요소를 가져오기 위해 json 파일을 반복합니다.