단일 시야가 발견되면 결과에 대한 startactivity를 호출하려고합니다. 보기에 singletap를 들어 StartActivityfor 사용자 정의보기에서
, 내가static void tapped(Activity activity, int requestCode){
activity.startActivityForResult(new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI), 1);
}
을 다음과 같다하지만이 같은 작동하지 않는 뷰
@Override public boolean onTouchEvent(MotionEvent ev) {
if (!mSupportsZoom && !mSupportsPan) return false;
mScaleDetector.onTouchEvent(ev);
final int action = ev.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
final float x = ev.getX();
final float y = ev.getY();
mLastTouchX = x;
mLastTouchY = y;
mActivePointerId = ev.getPointerId(0);
break;
}
case MotionEvent.ACTION_MOVE: {
final int pointerIndex = ev.findPointerIndex(mActivePointerId);
final float x = ev.getX(pointerIndex);
final float y = ev.getY(pointerIndex);
if (mSupportsPan && !mScaleDetector.isInProgress()) {
final float dx = x - mLastTouchX;
final float dy = y - mLastTouchY;
mPosX += dx;
mPosY += dy;
//mFocusX = mPosX;
//mFocusY = mPosY;
invalidate();
}
mLastTouchX = x;
mLastTouchY = y;
break;
}
case MotionEvent.ACTION_UP: {
final float x = ev.getX();
final float y = ev.getY();
touchupX=x;
touchupY=y;
if(mLastTouchX == touchupX && mLastTouchY == touchupY){ //this is my condition to detect single tap on the view
PinchZoomPanActivity2.tapped(null, 100); //method for startactivityfor result which is in main activity
}
mActivePointerId = INVALID_POINTER_ID;
break;
}
case MotionEvent.ACTION_CANCEL: {
mActivePointerId = INVALID_POINTER_ID;
break;
}
case MotionEvent.ACTION_POINTER_UP: {
final int pointerIndex = (ev.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK)
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
final int pointerId = ev.getPointerId(pointerIndex);
if (pointerId == mActivePointerId) {
final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
mLastTouchX = ev.getX(newPointerIndex);
mLastTouchY = ev.getY(newPointerIndex);
mActivePointerId = ev.getPointerId(newPointerIndex);
}
break;
}
}
return true;
}
및 mainactivity의 탭 방식의 ontouch 방법에 follwing을 조건을 썼다 오류 널 포인터 예외로 인해 차압이 발생합니다.
제 코드가 잘못되었음을 제안하십시오.
그래 난 그냥 눈치
및 활동에서 내가보기에 this.getcontext()를 추가 입니다,하지만 무엇 나는 그때 거기에서 사용한다. 나는 활동을 호출 할 필요가있다. 그러나 나는 혼란 스럽다. –
활동 대신 컨텍스트로 만들고 뷰에서 this.getContext()를 사용하십시오. –
오 고마워요. –