Skip to content

Instantly share code, notes, and snippets.

chiemy chiemy

Block or report user

Report or block chiemy

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
public boolean dispatchTouchEvent(MotionEvent ev) {
final int action = ev.getAction();
final float xf = ev.getX();
final float yf = ev.getY();
final float scrolledXFloat = xf + mScrollX;
final float scrolledYFloat = yf + mScrollY;
final Rect frame = mTempRect;
boolean disallowIntercept = (mGroupFlags & FLAG_DISALLOW_INTERCEPT) != 0;
if (action == MotionEvent.ACTION_DOWN) {
if (mMotionTarget != null) {
public class SnappingLinearLayoutManager extends LinearLayoutManager {
private RecyclerView.SmoothScroller smoothScroller;
public SnappingLinearLayoutManager(Context context) {
super(context, VERTICAL, false);
public void smoothScrollToPosition(RecyclerView recyclerView, RecyclerView.State state,
int position) {
chiemy /
Last active Aug 3, 2017
自定义 Span 工具类,可设置文字颜色、大小、字体、样式,字体间加横向、纵向间距
public class CustomSpan {
private Context mContext;
private SpannableStringBuilder mSpannableString;
private int mStart;
private int mEnd;
public CustomSpan(Context context) {
mContext = context;
mSpannableString = new SpannableStringBuilder("");
public class CustomTypefaceSpan extends MetricAffectingSpan {
private final Typeface mTypeface;
public CustomTypefaceSpan(final Typeface typeface) {
this.mTypeface = typeface;
public void updateDrawState(final TextPaint drawState) {
chiemy /
Created Apr 25, 2017
ViewPager 内 Fragment 嵌套 ViewPager, setUserVisibleHint 方法不准确的问题的帮助类
* Created: chiemy
* Date: 17/1/4
* Description: 为解决 ViewPager 内 Fragment 嵌套 ViewPager, setUserVisibleHint 方法不准确的问题的帮助类
public class NestedFragmentHelper implements ViewPager.OnPageChangeListener {
* Created: chiemy
* Date: 16/11/22
* Description: 可控制显示时长, 可点击的Toast
public class ExtendToast {
public static final int LENGTH_ALWAYS = 0;
public static final int LENGTH_SHORT = 2;
private Toast toast;
View GetScreenshot of recyclerView
public Bitmap getScreenshotFromRecyclerView(RecyclerView view) {
RecyclerView.Adapter adapter = view.getAdapter();
Bitmap bigBitmap = null;
if (adapter != null) {
int size = adapter.getItemCount();
int height = 0;
Paint paint = new Paint();
int iHeight = 0;
final int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
public Bitmap blurBitmap(Bitmap bitmap){
//Let's create an empty bitmap with the same size of the bitmap we want to blur
Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
//Instantiate a new Renderscript
RenderScript rs = RenderScript.create(getApplicationContext());
//Create an Intrinsic Blur Script using the Renderscript
ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
* Copyright 2014 Chris Banes
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* Unless required by applicable law or agreed to in writing, software
View Example OnAudioFocusChangeListener
private AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener;
mOnAudioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
switch (focusChange) {
case AudioManager.AUDIOFOCUS_GAIN:
// Set volume level to desired levels
You can’t perform that action at this time.