Skip to content

Instantly share code, notes, and snippets.

View twiceyuan's full-sized avatar

twiceYuan twiceyuan

View GitHub Profile
@twiceyuan
twiceyuan / ViewToBitmap.java
Last active January 25, 2016 08:31
将 View 显示出来的图像转换为 Bitmap
/**
* 转换 View 为 Bitmap
*/
public static Bitmap viewToBitmap(View v) {
if (v.getMeasuredHeight() <= 0) {
v.measure(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
Bitmap b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
v.draw(c);
@twiceyuan
twiceyuan / gist:0c1b7faa6fad2d3cad42
Last active April 23, 2019 14:31 — forked from z8888q/gist:7280681
[如何动态改变 App 图标] #Android How to change an application icon programmatically in Android
//1 . Modify your MainActivity section in AndroidManifest.xml, delete from it, line with MAIN category in intent-//filter section
<activity android:name="ru.quickmessage.pa.MainActivity"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"
android:label="@string/app_name"
android:theme="@style/CustomTheme"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@twiceyuan
twiceyuan / note.md
Created February 26, 2016 08:37
不能验证这个 安装 OS X ... 副本 解决方案

这个是拆机后断了电源,导致时间不对,也就是说现在电脑的时间比U盘制作的时间还早,所以有这样的错误提示。

在终端里面修改时间 请参考下面的代码,按回车键确认:

date 062614102014.30 06是月,26是日,14是时,10是分,2014是年,30是秒 注意:一定要修改为现在的时间,误差不超过1分钟

@twiceyuan
twiceyuan / OnVerticalScrollListener.java
Created March 16, 2016 11:46
监听 RecyclerView 滚动到顶部 / 底部
import android.support.v7.widget.RecyclerView;
public abstract class OnVerticalScrollListener extends RecyclerView.OnScrollListener {
@Override
public final void onScrolled(RecyclerView recyclerView, int dx, int dy) {
if (!recyclerView.canScrollVertically(1)) {
onScrolledToEnd();
} else if (!recyclerView.canScrollVertically(-1)) {
onScrolledToTop();
@twiceyuan
twiceyuan / note.groovy
Last active July 11, 2021 01:11
[Gradle 配置 上传 source.jar] #Gradle
// build a jar with source files
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
archiveClassifier.set('sources')
}
task javadoc(type: Javadoc) {
failOnError false
source = android.sourceSets.main.java.sourceFiles
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
@twiceyuan
twiceyuan / RegexInputFilter.java
Created April 27, 2016 13:05
根据正则表达式构造输入过滤器
import android.text.InputFilter;
import android.text.Spanned;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by twiceYuan on 11/10/15.
* <p>
@twiceyuan
twiceyuan / VerticalItemDecoration.java
Last active May 12, 2016 07:25
RecyclerView 中间分隔间隙的实现方法
import android.graphics.Rect;
import android.support.v7.widget.RecyclerView;
import android.view.View;
/**
* Created by twiceYuan on 3/30/16.
* Email: [email protected]
* Site: http://twiceyuan.com
*
* RecyclerView 分割线高度设定
@twiceyuan
twiceyuan / DP.java
Last active May 12, 2016 07:28
Android 中 dp 和 px 互相转换
import android.content.Context;
import android.util.DisplayMetrics;
public class DP {
public static int dp2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
@twiceyuan
twiceyuan / sample.java
Last active May 6, 2018 15:27
[运行时修改注解值的方法] Annotation Value modify #Java
public static void main(String[] args) throws Exception {
final Something oldAnnotation = (Something) Foobar.class.getAnnotations()[0];
System.out.println("oldAnnotation = " + oldAnnotation.someProperty());
Annotation newAnnotation = new Something() {
@Override
public String someProperty() {
return "another value";
}
@twiceyuan
twiceyuan / GenericTypeDemo.java
Last active December 8, 2016 02:05
获得泛型 T.class 的方法。使用该方法时必须使用匿名实现(new 的时候带 {})
public class GenericTypeDemo {
public static void main(String args[]) {
Foo<String> foo = new Foo<String>() { };
// 在类的外部这样获取
Type type = ((ParameterizedType) foo.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
System.out.println(type);
// 在类的内部这样获取
System.out.println(foo.getTClass());
}