下面列出了怎么用android.support.v4.view.GestureDetectorCompat的API类实例代码及写法,或者点击链接到github查看源代码。
private void init(Context context, AttributeSet attrs) {
if (attrs != null && context != null) {
TypedArray a = context.getTheme().obtainStyledAttributes(
attrs,
R.styleable.SwipeRevealLayout,
0, 0
);
mDragEdge = a.getInteger(R.styleable.SwipeRevealLayout_dragFromEdge, DRAG_EDGE_LEFT);
mMode = MODE_NORMAL;
mMinFlingVelocity = DEFAULT_MIN_FLING_VELOCITY;
mMinDistRequestDisallowParent = DEFAULT_MIN_DIST_REQUEST_DISALLOW_PARENT;
}
mDragHelper = ViewDragHelper.create(this, 1.0f, mDragHelperCallback);
mDragHelper.setEdgeTrackingEnabled(ViewDragHelper.EDGE_ALL);
mGestureDetector = new GestureDetectorCompat(context, mGestureListener);
}
public DragLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
TypedArray typedArray = context.obtainStyledAttributes(attrs, dragLayout, 0, 0);
bottomDragVisibleHeight = (int) typedArray.getDimension(R.styleable.dragLayout_bottomDragVisibleHeight, 0);
bottomExtraIndicatorHeight = (int) typedArray.getDimension(R.styleable.dragLayout_bottomExtraIndicatorHeight, 0);
typedArray.recycle();
mDragHelper = ViewDragHelper
.create(this, 10f, new DragHelperCallback());
mDragHelper.setEdgeTrackingEnabled(ViewDragHelper.EDGE_TOP);
moveDetector = new GestureDetectorCompat(context, new MoveDetector());
moveDetector.setIsLongpressEnabled(false); // 不处理长按事件
// 滑动的距离阈值由系统提供
ViewConfiguration configuration = ViewConfiguration.get(getContext());
mTouchSlop = configuration.getScaledTouchSlop();
}
public DraggableSquareView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mDragHelper = ViewDragHelper
.create(this, 10f, new DragHelperCallback());
moveDetector = new GestureDetectorCompat(context,
new MoveDetector());
moveDetector.setIsLongpressEnabled(false); // 不能处理长按事件,否则违背最初设计的初衷
spaceInterval = (int) getResources().getDimension(R.dimen.drag_square_interval); // 小方块之间的间隔
// 滑动的距离阈值由系统提供
ViewConfiguration configuration = ViewConfiguration.get(getContext());
mTouchSlop = configuration.getScaledTouchSlop();
anchorHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (draggingView != null) {
// 开始移动重心的动画
draggingView.startAnchorAnimation();
}
}
};
}
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));
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;
mGestureDetector = new GestureDetectorCompat(getActivity(), new GestureListener());
if ( mLandscape ) {
mainActivity.mViewPagerListeners.add(this);
}
if ( savedInstanceState != null ) {
long date = savedInstanceState.getLong(SAVE_DATE, -1);
if ( date > 0 )
mCalendar.setTimeInMillis(date);
}
}
/**
* 初始化参数
*/
private void initParams() {
mDetector = new GestureDetectorCompat(this, new SimpleGestureAction());
mStateBarH = AndroidUtils.getStatusBarHeight(this);
mHeadH = (int) getResources().getDimension(R.dimen.game_detail_head_height);
mBarH = (int) getResources().getDimension(R.dimen.tool_bar_height);
mScreenH = AndroidUtils.getScreenParams(this)[1];
mNBarH = AndroidUtils.getNavigationBarHeight(this);
mTopL = -mHeadH + mBarH;
mCenterL = DensityUtils.dp2px(150);
mBottomL = mScreenH - mStateBarH - mNBarH - mHeadH + mBarH;
mRootView = findViewById(android.R.id.content);
//处理4.4之后状态栏
if (AndroidVersionUtil.hasKitKat()) {
mTemp.setVisibility(View.VISIBLE);
mToolBar.setTranslationY(mStateBarH);
mTemp.getLayoutParams().height = mStateBarH;
} else {
mTemp.setVisibility(View.GONE);
}
}
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));
}
private void init() {
mDetector = new GestureDetectorCompat(getContext(), this);
mTopPadding = dp2px(mTopPadding);
mBottomPadding = dp2px(mBottomPadding);
mTextSize = sp2px(mTextSize);
mVolumeHeight=dp2px(mVolumeHeight);
mGridPaint.setColor(Color.parseColor("#353941"));
mGridPaint.setStrokeWidth(dp2px(1));
mTextPaint.setColor(Color.parseColor("#B1B2B6"));
mTextPaint.setTextSize(mTextSize);
mTextPaint.setStrokeWidth(dp2px(0.5f));
mAvgPaint.setColor(Color.parseColor("#90A901"));
mAvgPaint.setStrokeWidth(dp2px(0.5f));
mAvgPaint.setTextSize(mTextSize);
mPricePaint.setColor(Color.parseColor("#FF6600"));
mPricePaint.setStrokeWidth(dp2px(0.5f));
mPricePaint.setTextSize(mTextSize);
mVolumePaintGreen.setColor(ContextCompat.getColor(getContext(), R.color.chart_green));
mVolumePaintRed.setColor(ContextCompat.getColor(getContext(),R.color.chart_red));
mBackgroundColor =Color.parseColor("#202326");
mBackgroundPaint.setColor(mBackgroundColor);
mVolumeFormatter=new BigValueFormatter();
}
private void init() {
setWillNotDraw(false);
mDetector = new GestureDetectorCompat(getContext(), this);
mScaleDetector = new ScaleGestureDetector(getContext(), this);
mTopPadding = (int) getResources().getDimension(R.dimen.chart_top_padding);
mBottomPadding = (int)getResources().getDimension(R.dimen.chart_bottom_padding);
mKChartTabView = new KChartTabView(getContext());
addView(mKChartTabView, new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
mKChartTabView.setOnTabSelectListener(new KChartTabView.TabSelectListener() {
@Override
public void onTabSelected(int type) {
setChildDraw(type);
}
});
mAnimator = ValueAnimator.ofFloat(0f, 1f);
mAnimator.setDuration(mAnimationDuration);
mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
invalidate();
}
});
}
private void init(Context context, AttributeSet attrs) {
if (attrs != null && context != null) {
TypedArray a = context.getTheme().obtainStyledAttributes(
attrs,
R.styleable.SwipeRevealLayout,
0, 0
);
mDragEdge = a.getInteger(R.styleable.SwipeRevealLayout_dragEdge, DRAG_EDGE_LEFT);
mMinFlingVelocity = a.getInteger(R.styleable.SwipeRevealLayout_flingVelocity, DEFAULT_MIN_FLING_VELOCITY);
mMode = a.getInteger(R.styleable.SwipeRevealLayout_mode, MODE_NORMAL);
mMinDistRequestDisallowParent = a.getDimensionPixelSize(
R.styleable.SwipeRevealLayout_minDistRequestDisallowParent,
dpToPx(DEFAULT_MIN_DIST_REQUEST_DISALLOW_PARENT)
);
}
mDragHelper = ViewDragHelper.create(this, 1.0f, mDragHelperCallback);
mDragHelper.setEdgeTrackingEnabled(ViewDragHelper.EDGE_ALL);
mGestureDetector = new GestureDetectorCompat(context, mGestureListener);
}
private void init(@NonNull Context context) {
// I fucking love Android
setWillNotDraw(false);
selectedLayerPaint = new Paint();
selectedLayerPaint.setAlpha((int) (255 * Constants.SELECTED_LAYER_ALPHA));
selectedLayerPaint.setAntiAlias(true);
// init listeners
this.scaleGestureDetector = new ScaleGestureDetector(context, new ScaleListener());
this.rotateGestureDetector = new RotateGestureDetector(context, new RotateListener());
this.moveGestureDetector = new MoveGestureDetector(context, new MoveListener());
this.gestureDetectorCompat = new GestureDetectorCompat(context, new TapsListener());
setOnTouchListener(onTouchListener);
updateUI();
}
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));
}
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
if (!shouldDetectGesture()) {
return false; // 拦截手势检测
}
// 手势检测
if (recyclerView == null) {
this.recyclerView = rv;
this.baseAdapter = (T) recyclerView.getAdapter();
mGestureDetector = new GestureDetectorCompat(recyclerView.getContext(), new ItemTouchHelperGestureListener(recyclerView));
}
if (!mGestureDetector.onTouchEvent(e) && e.getActionMasked() == MotionEvent.ACTION_UP && mIsShowPress) {
if (mPressedView != null) {
BaseViewHolder vh = (BaseViewHolder) recyclerView.getChildViewHolder(mPressedView);
if (vh == null || vh.getItemViewType() != IRecyclerView.LOADING_VIEW || vh.getItemViewType() != IRecyclerView.FETCHING_VIEW) {
mPressedView.setPressed(false);
}
mPressedView = null;
}
mIsShowPress = false;
mIsPrepressed = false;
}
return false;
}
@Override
public void onCreate(Bundle savedInstanceState) {
// Debug.startMethodTracing("calc");
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
Log.i(TAG, " max runtime mem = " + maxMemory + "k");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources();
analyzerParam = new AnalyzerParameters(res);
// Initialized preferences by default values
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
// Read preferences and set corresponding variables
loadPreferenceForView();
analyzerViews = new AnalyzerViews(this);
// travel Views, and attach ClickListener to the views that contain android:tag="select"
visit((ViewGroup) analyzerViews.graphView.getRootView(), new Visit() {
@Override
public void exec(View view) {
view.setOnLongClickListener(AnalyzerActivity.this);
view.setOnClickListener(AnalyzerActivity.this);
((TextView) view).setFreezesText(true);
}
}, "select");
rangeViewDialogC = new RangeViewDialogC(this, analyzerViews.graphView);
mDetector = new GestureDetectorCompat(this, new AnalyzerGestureListener());
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dataSource = new BookmarkDataSource(getActivity());
dataSource.open();
setRetainInstance(true);
try {
if(getArguments()!=null && (getArguments().containsKey(HEADLINE_CLICKED))) {
mArticleHeadline = getArguments().getString(HEADLINE_CLICKED);
mArticleURL = BookmarkAdapter.linkMap.get(mArticleHeadline);
mArticlePubDate = BookmarkAdapter.pubDateMap.get(mArticleHeadline);
mArticleBody = BookmarkAdapter.articleBody.get(mArticleHeadline);
mArticleImageURL = BookmarkAdapter.articleImage.get(mArticleHeadline);
npNameString = BookmarkAdapter.npNameMap.get(mArticleHeadline);
catNameString = BookmarkAdapter.catNameMap.get(mArticleHeadline);
} else {
Crashlytics.log("Get Arguments is null -- "+(null==getArguments()));
}
} catch (Exception e) {
Crashlytics.log("Get Arguments is null -- "+(null==getArguments()));
Crashlytics.log("Argument contains key -- "+HEADLINE_CLICKED+"--"+(getArguments().containsKey(HEADLINE_CLICKED)));
Crashlytics.log("Null -- "
+(mArticleHeadline==null)
+(mArticleURL==null)
+(mArticlePubDate==null)
+(mArticleBody==null)
+(npNameString==null)
+(catNameString==null)
+(mArticleImageURL==null)
);
}
actionBarColor = getResources().getColor(R.color.actionbar_default_color);
mDetector = new GestureDetectorCompat(getActivity(), new MyGestureListener());
slide_down = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_down);
}
private void init() {
setWillNotDraw(false);
mKChartTabView = new KChartTabView(getContext());
if (showBottomView) {
mBottomPadding = (int) getResources().getDimension(R.dimen.chart_bottom_padding);//距底部距离
addView(mKChartTabView, new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
mKChartTabView.setOnTabSelectListener(new KChartTabView.TabSelectListener() {
@Override
public void onTabSelected(int type) {
setChildDraw(type);
}
});
} else {
mBottomPadding = 0;//距底部距离
mMainChildSpace = 0;
}
mDetector = new GestureDetectorCompat(getContext(), this);
mScaleDetector = new ScaleGestureDetector(getContext(), this);
mAnimator = ValueAnimator.ofFloat(0f, 1f);
mAnimator.setDuration(mAnimationDuration);
mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
invalidate();
}
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dataSource = new BookmarkDataSource(getActivity());
dataSource.open();
setRetainInstance(true);
try {
if(getArguments()!=null){
npNameString = getArguments().getString("npName");
catNameString = getArguments().getString("catName");
actionBarColor = getArguments().getInt("actionBarColor");
if (getArguments().containsKey(HEADLINE_CLICKED)) {
mArticleHeadline = getArguments().getString(HEADLINE_CLICKED);
mArticleURL = NewsAdapter.linkMap.get(mArticleHeadline);
mArticlePubDate = NewsAdapter.pubDateMap.get(mArticleHeadline);
} else {
Crashlytics.log("Argument contains key -- "+HEADLINE_CLICKED+"--"+(getArguments().containsKey(HEADLINE_CLICKED)));
}
} else {
Crashlytics.log("Get Arguments is null -- "+(null==getArguments()));
}
} catch (Exception e) {
Crashlytics.log("Get Arguments is null -- "+(null==getArguments()));
Crashlytics.log("Argument contains key -- "+HEADLINE_CLICKED+"--"+(getArguments().containsKey(HEADLINE_CLICKED)));
Crashlytics.log("Null -- "
+(npNameString==null)
+(catNameString==null)
+(actionBarColor==0)
+(mArticleHeadline==null)
+(mArticleURL==null)
+(mArticlePubDate==null)
);
}
mDetector = new GestureDetectorCompat(getActivity(), new MyGestureListener());
slide_down = AnimationUtils.loadAnimation(getActivity(), R.anim.slide_down);
}
protected void init() {
mDetector = new GestureDetectorCompat(getContext(), this);
ViewConfiguration configuration = ViewConfiguration.get(getContext());
// 获取TouchSlop值
mTouchSlop = ViewConfigurationCompat.getScaledPagingTouchSlop(configuration);
mBackgroundColor = Color.parseColor("#101114");
mBackgroundPaint.setColor(mBackgroundColor);
mGridPaint.setColor(Color.parseColor("#15FFFFFF")); //网格线颜色
mGridPaint.setStrokeWidth(dp2px(1));
}
private void init() {
mDetector = new GestureDetectorCompat(getContext(), this);
mTopPadding = dp2px(mTopPadding);
mBottomPadding = dp2px(mBottomPadding);
mTextSize = sp2px(mTextSize);
mVolumeHeight = dp2px(mVolumeHeight);
mGridPaint.setColor(ContextCompat.getColor(getContext(), R.color.chart_grid_line));//网络线颜色
mGridPaint.setStrokeWidth(dp2px(1));
mTextPaint.setColor(ContextCompat.getColor(getContext(), R.color.chart_text));
mTextPaint.setTextSize(mTextSize);
mTextPaint.setStrokeWidth(dp2px(0.5f));
// mAvgPaint.setColor(ContextCompat.getColor(getContext(), R.color.chart_FFFFFF));
// mAvgPaint.setStrokeWidth(dp2px(0.5f));
// mAvgPaint.setTextSize(mTextSize);
mPricePaint.setColor(ContextCompat.getColor(getContext(), R.color.chart_FFFFFF));
mPricePaint.setStrokeWidth(dp2px(0.5f));
mPricePaint.setTextSize(mTextSize);
mTimePaint.setColor(ContextCompat.getColor(getContext(), R.color.chart_FFFFFF));
mTimePaint.setStrokeWidth(dp2px(0.5f));
mTimePaint.setTextSize(mTextSize);
mVolumePaintGreen.setColor(ContextCompat.getColor(getContext(), R.color.chart_green));//阴线柱状颜色
mVolumePaintRed.setColor(ContextCompat.getColor(getContext(), R.color.chart_red));//阳线柱状颜色
mBackgroundColor = ContextCompat.getColor(getContext(), R.color.chart_background);
mBackgroundPaint.setColor(mBackgroundColor);
mVolumeFormatter = new BigValueFormatter();
setSelectorBackgroundColor(ContextCompat.getColor(getContext(), R.color.chart_dialog_bg));
setSelectorTextSize(sp2px(12));
setSelectorTextColor(ContextCompat.getColor(getContext(), R.color.chart_white));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGestureDetector = new GestureDetectorCompat(this, new GestureListener());
hideSystemUi();
}
private void initSeatView(Context context, AttributeSet attrs){
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MovieSeatView);
if(typedArray.hasValue(R.styleable.MovieSeatView_iconOnSale)
&& typedArray.hasValue(R.styleable.MovieSeatView_iconSold)
&& typedArray.hasValue(R.styleable.MovieSeatView_iconSelected)){
mIconOnSaleResId = typedArray.getResourceId(R.styleable.MovieSeatView_iconOnSale, 0);
mIconSoldResId = typedArray.getResourceId(R.styleable.MovieSeatView_iconSold, 0);
mIconSelectedResId = typedArray.getResourceId(R.styleable.MovieSeatView_iconSelected, 0);
mSeatPadding = (int) (typedArray.getDimension(R.styleable.MovieSeatView_seatPadding, 0f) + 0.5f) * 2;
mSeatWidth = typedArray.getDimension(R.styleable.MovieSeatView_seatWidth,
getResources().getDimension(R.dimen.default_seat_width)) + mSeatPadding;
mSeatHeight = typedArray.getDimension(R.styleable.MovieSeatView_seatHeight,
getResources().getDimension(R.dimen.default_seat_height)) + mSeatPadding;
mShowOverview = typedArray.getBoolean(R.styleable.MovieSeatView_showOverView, true);
mScaleFactorMin = typedArray.getFloat(R.styleable.MovieSeatView_seatScaleFactorMin, mScaleFactorMin);
mScaleFactorMinBest = typedArray.getFloat(R.styleable.MovieSeatView_seatScaleFactorMinBest, mScaleFactorMinBest);
mScaleFactorMax = typedArray.getFloat(R.styleable.MovieSeatView_seatScaleFactorMax, mScaleFactorMax);
mScaleFactorMaxBest = typedArray.getFloat(R.styleable.MovieSeatView_seatScaleFactorMaxBest, mScaleFactorMaxBest);
typedArray.recycle();
} else {
typedArray.recycle();
throw new RuntimeException("must has iconSeatOnSale, iconSeatSold and iconSeatSelected");
}
mScaleGestureDetector = new ScaleGestureDetector(getContext(), mScaleGestureListener);
mGestureDetector = new GestureDetectorCompat(getContext(), mGestureListener);
}
private void init() {
// 图片的大小
mImageSize = Utils.dp2px(300);
// 获取图片
mBitmap = Utils.getDrawableBitmap(getContext(), R.drawable.icon_android_road, mImageSize);
// 画笔
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
//
gestureDetectorCompat = new GestureDetectorCompat(getContext(), this);
gestureDetectorCompat.setOnDoubleTapListener(this);
scroller = new OverScroller(getContext());
scaleGestureDetector = new ScaleGestureDetector(getContext(), new ScaleImageScaleGestureDetector());
}
@SuppressLint("ClickableViewAccessibility")
public WorkspaceLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
GestureDetectorCompat gestureDetectorCompat
= new GestureDetectorCompat(getContext(), new CustomGestureDetector(this));
setOnTouchListener((view, motionEvent) -> {
gestureDetectorCompat.onTouchEvent(motionEvent);
return true;
});
}
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
LogUtil.e("onInterceptTouchEvent_RecyclerView");
if (mRecyclerView == null) {
mRecyclerView = rv;
mBaseWrappedAdapter = (BaseWrappedAdapter) mRecyclerView.getAdapter();
mGestureDetectorCompat = new GestureDetectorCompat(mRecyclerView.getContext(),
new CustomOnGestureListener(mRecyclerView));
}
// 这里恢复长按下效果
if (!mGestureDetectorCompat.onTouchEvent(e) && e.getAction() == MotionEvent.ACTION_UP
&& isPressing) {
if (mPressedView != null) {
// 这里要排除头部和底部view
RecyclerView.ViewHolder viewHolder = mRecyclerView.getChildViewHolder(mPressedView);
if (viewHolder == null || !isHeaderViewOrFooterView(viewHolder.getItemViewType())) {
mPressedView.setPressed(false);
if (mPressedView instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) mPressedView;
for (int i = 0; i < viewGroup.getChildCount(); i++) {
if (!viewGroup.getChildAt(i).isPressed()) {
viewGroup.getChildAt(i).setPressed(false);
}
}
}
}
}
// 重置
isPressing = false;
}
// 不中断
return false;
}
public GLDrawer(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
setEGLContextClientVersion(2);
listener = null;
gestureDetector = new GestureDetectorCompat(context, new MenuGestureListener());
scroller = new Scroller(context);
glRenderer = new GLRenderer();
setRenderer(glRenderer);
}
public GLDrawer(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
setEGLContextClientVersion(2);
listener = null;
gestureDetector = new GestureDetectorCompat(context, new MenuGestureListener());
scroller = new Scroller(context);
glRenderer = new GLRenderer();
setRenderer(glRenderer);
}
public ScrollableImageView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
DisplayMetrics dm = getResources().getDisplayMetrics();
screenW = dm.widthPixels;
screenH = dm.heightPixels;
gestureDetector = new GestureDetectorCompat(context, gestureListener);
overScroller = new OverScroller(context);
}
/**
* Initializes the header and any static values
*/
private void initialize() {
Context context = getContext();
if (!sInitialized) {
sInitialized = true;
Resources resources = context.getApplicationContext().getResources();
sCropSize = resources.getDimensionPixelSize(R.dimen.photo_crop_width);
sCropDimPaint = new Paint();
sCropDimPaint.setAntiAlias(true);
sCropDimPaint.setColor(resources.getColor(R.color.photo_crop_dim_color));
sCropDimPaint.setStyle(Style.FILL);
sCropPaint = new Paint();
sCropPaint.setAntiAlias(true);
sCropPaint.setColor(resources.getColor(R.color.photo_crop_highlight_color));
sCropPaint.setStyle(Style.STROKE);
sCropPaint.setStrokeWidth(resources.getDimension(R.dimen.photo_crop_stroke_width));
final ViewConfiguration configuration = ViewConfiguration.get(context);
final int touchSlop = configuration.getScaledTouchSlop();
sTouchSlopSquare = touchSlop * touchSlop;
}
mGestureDetector = new GestureDetectorCompat(context, this, null);
mScaleGetureDetector = new ScaleGestureDetector(context, this);
mQuickScaleEnabled = ScaleGestureDetectorCompat.isQuickScaleEnabled(mScaleGetureDetector);
mScaleRunnable = new ScaleRunnable(this);
mTranslateRunnable = new TranslateRunnable(this);
mSnapRunnable = new SnapRunnable(this);
mRotateRunnable = new RotateRunnable(this);
}
public SwipeItemTouchListener(Context context, GroupBasicAdapter groupBasicAdapter, RecyclerView recyclerView) {
this.mGroupBasicAdapter = groupBasicAdapter;
this.recyclerView = recyclerView;
this.recyclerView.addOnScrollListener(scrollListener);
this.layoutManager = (VirtualLayoutManager) recyclerView.getLayoutManager();
mSwipeGestureDector = new GestureDetectorCompat(context, new SwipeGestureListener());
mChildList = new ArrayList<>();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGestureDetector = new GestureDetectorCompat(getActivity(), new GestureListener());
setRetainInstance(true);
if ( savedInstanceState != null )
mItems = savedInstanceState.getParcelableArrayList(STATE_ENTRIES);
}