Skip to content

Instantly share code, notes, and snippets.

@pythoncat1024
pythoncat1024 / anyJava
Last active June 27, 2021 09:46
show current time string like '2021-06-27 17:41:16.681'
private static String time() {
Calendar instance = Calendar.getInstance();
int year = instance.get(Calendar.YEAR);
int month = instance.get(Calendar.MONTH) + 1;
int day = instance.get(Calendar.DAY_OF_MONTH);
int hour = instance.get(Calendar.HOUR_OF_DAY);
int minute = instance.get(Calendar.MINUTE);
int second = instance.get(Calendar.SECOND);
int millis = instance.get(Calendar.MILLISECOND);
@pythoncat1024
pythoncat1024 / MarqueeText.java
Last active July 6, 2020 17:50
MarqueeText 实现效果: TextView内容过长的话,先滚动显示全部内容,然后显示成末尾有...的样式
package org.victor.testlivedata.widget;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
@pythoncat1024
pythoncat1024 / HorizontalView.java
Last active November 4, 2019 16:54
自定义横向滑动的 ViewGroup,效果类似系统控件[HorizontalScrollView]
public class HorizontalView extends ViewGroup {
private static final int DEFAULT_DP = 20;
int defaultSize;
private int touchSlop;
private float downInterceptX;
private float downInterceptY;
private int tapTimeout;
private Scroller mScroller;
private long elapsedRealtime;
@pythoncat1024
pythoncat1024 / ViewUtils.java
Created November 4, 2019 10:25
dp2px,px2dp,sp2px,px2sp
public class ViewUtils {
private ViewUtils() {
}
public static String formatSpecMode(int mode) {
String format;
switch (mode) {
case View.MeasureSpec.EXACTLY:
format = "EXACTLY";
@pythoncat1024
pythoncat1024 / GridItemDecoration.kt
Last active October 20, 2019 12:39
recyclerView grid 模式的分割线绘制
private class StaggeredGridItemDecoration(
context: Context,
orientation: Int,
private val spanCount: Int
) : RecyclerView.ItemDecoration() {
companion object {
const val HORIZONTAL = LinearLayout.HORIZONTAL
const val VERTICAL = LinearLayout.VERTICAL
const val STAGGEREDGRID = 31
private val TAG = "DividerItem"
@pythoncat1024
pythoncat1024 / NestedRefreshLayout.java
Last active August 27, 2019 05:55
给RecyclerView的下拉刷新,上拉加载控件 https://juejin.im/post/5d6224bff265da03ce39e34d
package com.python.cat.mvvm.widgets;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.TypedArray;
@pythoncat1024
pythoncat1024 / NestedLinearLayout.java
Last active December 13, 2021 03:15
嵌套滑动
package com.python.cat.mvvm.widgets;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
@pythoncat1024
pythoncat1024 / HorizontalScrollLayout.java
Last active August 12, 2019 05:20
横向滑动view , 实现 HorizontalScrollView 的效果
package com.python.cat.needwork.widgets.measure;
import android.content.Context;
import android.os.SystemClock;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
@pythoncat1024
pythoncat1024 / RoundProgressBar.java
Last active August 6, 2019 13:48
正多边形进度条,不闪烁
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.os.SystemClock;
import android.util.AttributeSet;
@pythoncat1024
pythoncat1024 / CircleImageView.java
Last active August 6, 2019 23:20
通过裁切 onDraw 里面的 canvas,让其在绘制内容之前,先裁切出一个圆形。
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Path;
import android.util.AttributeSet;
/**
* 通过裁切 onDraw 里面的 canvas,让其在绘制内容之前,先裁切出一个圆形出来即可!
*/
public class CircleImageView extends android.support.v7.widget.AppCompatImageView {