下面列出了android.view.GestureDetector.SimpleOnGestureListener#android.view.GestureDetector 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
protected GestureDetector.OnGestureListener getGestureListener() {
return new ImageViewTouch.GestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
mUserScaled = true;
float scale = getScale();
float targetScale = onDoubleTapPost(scale, getMaxScale(), getMinScale());
targetScale = Math.min(getMaxScale(), Math.max(targetScale, getMinScale()));
zoomTo(targetScale, e.getX(), e.getY(), (long) mDefaultAnimationDuration);
if (null != mDoubleTapListener) {
mDoubleTapListener.onDoubleTap();
}
return false;
}
};
}
public EntityView(Context context, Point pos) {
super(context);
uuid = UUID.randomUUID();
position = pos;
gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
public void onLongPress(MotionEvent e) {
if (hasPanned || hasTransformed || hasReleased) {
return;
}
recognizedLongPress = true;
if (delegate != null) {
performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
delegate.onEntityLongClicked(EntityView.this);
}
}
});
}
public Attacher(DraweeView<GenericDraweeHierarchy> draweeView) {
mDraweeView = new WeakReference<>(draweeView);
draweeView.getHierarchy().setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER);
draweeView.setOnTouchListener(this);
mScaleDragDetector = new ScaleDragDetector(draweeView.getContext(), this);
mGestureDetector = new GestureDetectorCompat(draweeView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
@Override public void onLongPress(MotionEvent e) {
super.onLongPress(e);
if (null != mLongClickListener) {
mLongClickListener.onLongClick(getDraweeView());
}
}
});
mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this));
}
/**
* By default, sorting is enabled, and removal is disabled.
*
* @param dslv The DSLV instance
* @param dragHandleId The resource id of the View that represents
* the drag handle in a list item.
*/
DragSortController(DragSortListView dslv, int dragHandleId, int dragInitMode,
int removeMode, int clickRemoveId, int flingHandleId)
{
super(dslv);
mDslv = dslv;
mDetector = new GestureDetector(dslv.getContext(), this);
mFlingRemoveDetector = new GestureDetector(dslv.getContext(), mFlingRemoveListener);
mFlingRemoveDetector.setIsLongpressEnabled(false);
mTouchSlop = ViewConfiguration.get(dslv.getContext()).getScaledTouchSlop();
mDragHandleId = dragHandleId;
mClickRemoveId = clickRemoveId;
mFlingHandleId = flingHandleId;
setRemoveMode(removeMode);
setDragInitMode(dragInitMode);
}
/**
* Creates a {@link GestureEventFilter} with offset touch events.
* @param context The {@link Context} for Android.
* @param host The {@link EventFilterHost} for this event filter.
* @param panelManager The {@link OverlayPanelManager} responsible for showing panels.
*/
public OverlayPanelEventFilter(Context context, EventFilterHost host, OverlayPanel panel) {
super(context, host, panel, false, false);
mGestureDetector = new GestureDetector(context, new InternalGestureDetector());
mPanel = panel;
mSwipeRecognizer = new SwipeRecognizerImpl(context);
// Store the square of the platform touch slop in pixels to use in the scroll detection.
// See {@link OverlayPanelEventFilter#isDistanceGreaterThanTouchSlop}.
float touchSlopPx = ViewConfiguration.get(context).getScaledTouchSlop();
mTouchSlopSquarePx = touchSlopPx * touchSlopPx;
reset();
}
private void sharedConstructing(Context context) {
super.setClickable(true);
this.context = context;
mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
mGestureDetector = new GestureDetector(context, new GestureListener());
matrix = new Matrix();
prevMatrix = new Matrix();
m = new float[9];
normalizedScale = 1;
if (mScaleType == null) {
mScaleType = ScaleType.FIT_CENTER;
}
minScale = 1;
maxScale = 3;
superMinScale = SUPER_MIN_MULTIPLIER * minScale;
superMaxScale = SUPER_MAX_MULTIPLIER * maxScale;
setImageMatrix(matrix);
setScaleType(ScaleType.MATRIX);
setState(State.NONE);
onDrawReady = false;
super.setOnTouchListener(new PrivateOnTouchListener());
}
private void sharedConstructing(Context context) {
super.setClickable(true);
this.context = context;
mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
mGestureDetector = new GestureDetector(context, new GestureListener());
matrix = new Matrix();
prevMatrix = new Matrix();
m = new float[9];
normalizedScale = 1;
if (mScaleType == null) {
mScaleType = ScaleType.FIT_CENTER;
}
minScale = 1;
maxScale = 3;
superMinScale = SUPER_MIN_MULTIPLIER * minScale;
superMaxScale = SUPER_MAX_MULTIPLIER * maxScale;
setImageMatrix(matrix);
setScaleType(ScaleType.MATRIX);
setState(State.NONE);
onDrawReady = false;
super.setOnTouchListener(new PrivateOnTouchListener());
}
private void hackTwoItemsInfiniteScroll() {
if (mViewPager == null || mAdapter == null) {
return;
}
if (isInfinite) {
if (mAdapter.getRealCount() == 2) {
final GestureDetector gestureDetector = new GestureDetector(getContext(), new FlingGestureListener(mViewPager));
mViewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
});
} else {
mViewPager.setOnTouchListener(null);
}
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View content = inflater.inflate(R.layout.barcode_capture, container, false);
mPreview = content.findViewById(R.id.preview);
mGraphicOverlay = content.findViewById(R.id.graphicOverlay);
topLayout = content.findViewById(R.id.topLayout);
flashToggle = content.findViewById(R.id.flash_torch);
flashToggle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("SCANNER-FRAGMENT", "Got tap on Flash");
if (mCameraSource.setFlashMode(mFlashOn ? Camera.Parameters.FLASH_MODE_OFF : Camera.Parameters.FLASH_MODE_TORCH)) {
mFlashOn = !mFlashOn;
flashToggle.setImageResource(mFlashOn ? R.drawable.ic_torch_on : R.drawable.ic_torch);
}
}
});
mPreview.setScaletype(mPreviewScaleType);
gestureDetector = new GestureDetector(getActivity(), new CaptureGestureListener());
scaleGestureDetector = new ScaleGestureDetector(getActivity(), new ScaleListener());
mPreview.setOnTouchListener(this);
return content;
}
private void init(Context context){
gestureDetector = new GestureDetector(context, this);
View view = LayoutInflater.from(context).inflate(R.layout.atom_ui_view_search_line,null);
text = (TextView) view.findViewById(R.id.text);
int size = Utils.dipToPixels(context, 40);
setOrientation(LinearLayout.HORIZONTAL);
setGravity(Gravity.CENTER_VERTICAL);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
layoutParams.setMargins(0, size * 4, 0, 0);
setLayoutParams(layoutParams);
addView(view);
}
private void init() {
mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setTextAlign(Paint.Align.CENTER);
mMainLinePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mMainLinePaint.setStrokeWidth(8f);
mSecondaryLinePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mSecondaryLinePaint.setStrokeWidth(6f);
mTerciaryLinePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTerciaryLinePaint.setStrokeWidth(3f);
mMarkerPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mMarkerPaint.setStyle(Paint.Style.FILL);
pathMarker = new Path();
mDetector = new GestureDetector(getContext(), new mGestureListener());
}
private void setup(Context context) {
this.mContext = context;
lineUtils = new LineUtils();
mPaintNumbers = new Paint();
mPaintNumbers.setColor(getResources().getColor(R.color.color_number_color));
mPaintNumbers.setAntiAlias(true);
mPaintHighlight = new Paint();
mScale = context.getResources().getDisplayMetrics().density;
mPadding = (int) (mPaddingDP * mScale);
mHighlightedLine = mHighlightStart = -1;
mDrawingRect = new Rect();
mLineBounds = new Rect();
mGestureDetector = new GestureDetector(getContext(), HighlightEditor.this);
mChangeListener = new EditTextChangeListener();
mBracketHighlighter = new BracketHighlighter(this, codeTheme);
updateFromSettings();
enableTextChangedListener();
}
private void init() {
super.setScaleType(ScaleType.MATRIX);
if (mScaleType == null) mScaleType = ScaleType.CENTER_CROP;
mRotateDetector = new RotateGestureDetector(mRotateListener);
mDetector = new GestureDetector(getContext(), mGestureListener);
mScaleDetector = new ScaleGestureDetector(getContext(), mScaleListener);
float density = getResources().getDisplayMetrics().density;
MAX_FLING_OVER_SCROLL = (int) (density * 30);
MAX_OVER_RESISTANCE = (int) (density * 140);
mMinRotate = MIN_ROTATE;
mAnimDuring = ANIM_DURING;
mMaxScale = MAX_SCALE;
initCropLineRect();
initCropRect();
}
public OnItemTouchListener(Context context, OnItemClickListener listener) {
mListener = listener;
mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
});
}
public MultiGestureDetector(Context context) {
scaleGestureDetector = new ScaleGestureDetector(context, this);
gestureDetector = new GestureDetector(context, this);
gestureDetector.setOnDoubleTapListener(this);
final ViewConfiguration configuration = ViewConfiguration
.get(context);
scaledTouchSlop = configuration.getScaledTouchSlop();
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
Resources res = getResources();
boolean isPortrait = res.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
if (isPortrait) {
mColumnWidth = (int) (res.getDisplayMetrics().widthPixels * 0.87);
} else {
mColumnWidth = (int) (res.getDisplayMetrics().density * 320);
}
mGestureDetector = new GestureDetector(getContext(), new GestureListener());
mScroller = new Scroller(getContext(), new DecelerateInterpolator(1.1f));
mAutoScroller = new AutoScroller(getContext(), this);
mAutoScroller.setAutoScrollMode(snapToColumnWhenDragging() ? AutoScroller.AutoScrollMode.COLUMN : AutoScroller.AutoScrollMode
.POSITION);
mDragItem = new DragItem(getContext());
mDragColumn = new DragItem(getContext());
mDragColumn.setSnapToTouch(false);
mRootLayout = new FrameLayout(getContext());
mRootLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
mColumnLayout = new LinearLayout(getContext());
mColumnLayout.setOrientation(LinearLayout.HORIZONTAL);
mColumnLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
mColumnLayout.setMotionEventSplittingEnabled(false);
mRootLayout.addView(mColumnLayout);
mRootLayout.addView(mDragItem.getDragItemView());
addView(mRootLayout);
}
private synchronized void initView() {
mLeftViewIndex = -1;
mRightViewIndex = 0;
mDisplayOffset = 0;
mCurrentX = 0;
mNextX = 0;
mMaxX = Integer.MAX_VALUE;
mScroller = new Scroller(getContext());
mGesture = new GestureDetector(getContext(), mOnGesture);
}
/**
* Initializes class data
*
* @param context
* the context
*/
private void initData(Context context) {
gestureDetector = new GestureDetector(context, gestureListener);
gestureDetector.setIsLongpressEnabled(false);
LABEL_OFFSET = DensityUtil.dip2px(context, LABEL_OFFSET_DIP);
scroller = new Scroller(context);
}
public TrackerFrameLayout(Context context) {
super(context);
this.mGestureDetector = new GestureDetector(context, this);
this.mReuseLayoutHook = new ReuseLayoutHook(this, commonInfo);
// after the onActivityResumed
CommonHelper.addCommonArgsInfo(this);
}
public PhotoViewAttacher(ImageView imageView) {
mImageView = new WeakReference<ImageView>(imageView);
imageView.setOnTouchListener(this);
mViewTreeObserver = imageView.getViewTreeObserver();
mViewTreeObserver.addOnGlobalLayoutListener(this);
// Make sure we using MATRIX Scale Type
setImageViewScaleTypeMatrix(imageView);
if (!imageView.isInEditMode()) {
// Create Gesture Detectors...
mScaleDragDetector = VersionedGestureDetector.newInstance(imageView.getContext(), this);
mGestureDetector = new GestureDetector(imageView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
// forward long click listener
@Override
public void onLongPress(MotionEvent e) {
if (null != mLongClickListener) {
mLongClickListener.onLongClick(mImageView.get());
}
}
});
mGestureDetector.setOnDoubleTapListener(this);
// Finally, update the UI so that we're zoomable
setZoomable(true);
}
}
public PhotoViewAttacher(ImageView imageView, boolean zoomable) {
mImageView = new WeakReference<>(imageView);
imageView.setDrawingCacheEnabled(true);
imageView.setOnTouchListener(this);
ViewTreeObserver observer = imageView.getViewTreeObserver();
if (null != observer)
observer.addOnGlobalLayoutListener(this);
// Make sure we using MATRIX Scale Type
setImageViewScaleTypeMatrix(imageView);
if (imageView.isInEditMode()) {
return;
}
// Create Gesture Detectors...
mScaleDragDetector = VersionedGestureDetector.newInstance(
imageView.getContext(), this);
mGestureDetector = new GestureDetector(imageView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
// forward long click listener
@Override
public void onLongPress(MotionEvent e) {
if (null != mLongClickListener) {
mLongClickListener.onLongClick(getImageView());
}
}
});
mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this));
// Finally, update the UI so that we're zoomable
setZoomable(zoomable);
}
public FoldingLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mScrollGestureDetector = new GestureDetector(context,
new ScrollGestureDetector());
mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
setAnchorFactor(0);
}
/**
* Set up the class. Method called by constructors.
*
* @param context
*/
private void setUp(Context context) {
super.setClickable(false);
matrix = new Matrix();
state = State.INIT;
scaleDetector = new ScaleGestureDetector(context, new ScaleListener());
doubleTapDetecture = new GestureDetector(context, new GestureListener());
setScaleType(ScaleType.MATRIX);
}
public ModeListView(Context context, AttributeSet attrs)
{
super(context, attrs);
mGestureDetector = new GestureDetector(context, mOnGestureListener);
mListBackgroundColor = getResources().getColor(R.color.mode_list_background);
mSettingsButtonMargin = getResources().getDimensionPixelSize(
R.dimen.mode_list_settings_icon_margin);
}
public MaterialRippleLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setWillNotDraw(false);
gestureDetector = new GestureDetector(context, longClickListener);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MaterialRippleLayout);
rippleColor = a.getColor(R.styleable.MaterialRippleLayout_mrl_rippleColor, DEFAULT_COLOR);
rippleDiameter = a.getDimensionPixelSize(
R.styleable.MaterialRippleLayout_mrl_rippleDimension,
(int) dpToPx(getResources(), DEFAULT_DIAMETER_DP)
);
rippleOverlay = a.getBoolean(R.styleable.MaterialRippleLayout_mrl_rippleOverlay, DEFAULT_RIPPLE_OVERLAY);
rippleHover = a.getBoolean(R.styleable.MaterialRippleLayout_mrl_rippleHover, DEFAULT_HOVER);
rippleDuration = a.getInt(R.styleable.MaterialRippleLayout_mrl_rippleDuration, DEFAULT_DURATION);
rippleAlpha = (int) (255 * a.getFloat(R.styleable.MaterialRippleLayout_mrl_rippleAlpha, DEFAULT_ALPHA));
rippleDelayClick = a.getBoolean(R.styleable.MaterialRippleLayout_mrl_rippleDelayClick, DEFAULT_DELAY_CLICK);
rippleFadeDuration = a.getInteger(R.styleable.MaterialRippleLayout_mrl_rippleFadeDuration, DEFAULT_FADE_DURATION);
rippleBackground = new ColorDrawable(a.getColor(R.styleable.MaterialRippleLayout_mrl_rippleBackground, DEFAULT_BACKGROUND));
ripplePersistent = a.getBoolean(R.styleable.MaterialRippleLayout_mrl_ripplePersistent, DEFAULT_PERSISTENT);
rippleInAdapter = a.getBoolean(R.styleable.MaterialRippleLayout_mrl_rippleInAdapter, DEFAULT_SEARCH_ADAPTER);
rippleRoundedCorners = a.getDimensionPixelSize(R.styleable.MaterialRippleLayout_mrl_rippleRoundedCorners, DEFAULT_ROUNDED_CORNERS);
a.recycle();
paint.setColor(rippleColor);
paint.setAlpha(rippleAlpha);
enableClipPathSupportIfNecessary();
}
/**
* Each module can pass in their own gesture listener through App UI. When a gesture
* is detected, the {@link GestureDetector.OnGestureListener} will be notified of
* the gesture.
*
* @param gestureListener a listener from a module that defines how to handle gestures
*/
public void setGestureListener(GestureDetector.OnGestureListener gestureListener)
{
if (gestureListener != null)
{
mGestureDetector = new GestureDetector(getContext(), gestureListener);
}
}
public PhotoViewAttacher(ImageView imageView) {
mImageView = new WeakReference<ImageView>(imageView);
imageView.setOnTouchListener(this);
mViewTreeObserver = imageView.getViewTreeObserver();
mViewTreeObserver.addOnGlobalLayoutListener(this);
// Make sure we using MATRIX Scale Type
setImageViewScaleTypeMatrix(imageView);
if (!imageView.isInEditMode()) {
// Create Gesture Detectors...
mScaleDragDetector = VersionedGestureDetector.newInstance(imageView.getContext(), this);
mGestureDetector = new GestureDetector(imageView.getContext(),
new GestureDetector.SimpleOnGestureListener() {
// forward long click listener
@Override
public void onLongPress(MotionEvent e) {
if (null != mLongClickListener) {
mLongClickListener.onLongClick(mImageView.get());
}
}
});
mGestureDetector.setOnDoubleTapListener(this);
// Finally, update the UI so that we're zoomable
setZoomable(true);
}
}
public InterceptTouchLayout(Context context, AttributeSet attrs) {
super(context, attrs);
mGestureDetector = new GestureDetector(getContext(),
new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
if (LibraryLoader.isInitialized()) {
RecordUserAction.record("CustomTabs.TapUrlBar");
}
return super.onSingleTapConfirmed(e);
}
});
}
void initializeViews(View view){
mPreview = view.findViewById(R.id.preview);
mGraphicOverlay = view.findViewById(R.id.graphicOverlay);
flashToggle = view.findViewById(R.id.flash);
gestureDetector = new GestureDetector(getActivity(), new CaptureGestureListener());
view.setOnTouchListener(this);
}
public MaterialRippleLayoutNineOld(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setWillNotDraw(false);
gestureDetector = new GestureDetector(context, longClickListener);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MaterialRippleLayout);
rippleColor = a.getColor(R.styleable.MaterialRippleLayout_mrlsxm_rippleColor, DEFAULT_COLOR);
rippleDiameter = a.getDimensionPixelSize(
R.styleable.MaterialRippleLayout_mrlsxm_rippleDimension,
(int) dpToPx(getResources(), DEFAULT_DIAMETER_DP)
);
rippleOverlay = a.getBoolean(R.styleable.MaterialRippleLayout_mrlsxm_rippleOverlay, DEFAULT_RIPPLE_OVERLAY);
rippleHover = a.getBoolean(R.styleable.MaterialRippleLayout_mrlsxm_rippleHover, DEFAULT_HOVER);
rippleDuration = a.getInt(R.styleable.MaterialRippleLayout_mrlsxm_rippleDuration, DEFAULT_DURATION);
rippleAlpha = (int) (255 * a.getFloat(R.styleable.MaterialRippleLayout_mrlsxm_rippleAlpha, DEFAULT_ALPHA));
rippleDelayClick = a.getBoolean(R.styleable.MaterialRippleLayout_mrlsxm_rippleDelayClick, DEFAULT_DELAY_CLICK);
rippleFadeDuration = a.getInteger(R.styleable.MaterialRippleLayout_mrlsxm_rippleFadeDuration, DEFAULT_FADE_DURATION);
rippleBackground = new ColorDrawable(a.getColor(R.styleable.MaterialRippleLayout_mrlsxm_rippleBackground, DEFAULT_BACKGROUND));
ripplePersistent = a.getBoolean(R.styleable.MaterialRippleLayout_mrlsxm_ripplePersistent, DEFAULT_PERSISTENT);
rippleInAdapter = a.getBoolean(R.styleable.MaterialRippleLayout_mrlsxm_rippleInAdapter, DEFAULT_SEARCH_ADAPTER);
rippleRoundedCorners = a.getDimensionPixelSize(R.styleable.MaterialRippleLayout_mrlsxm_rippleRoundedCorners, DEFAULT_ROUNDED_CORNERS);
a.recycle();
paint.setColor(rippleColor);
paint.setAlpha(rippleAlpha);
enableClipPathSupportIfNecessary();
}