From bcaa3edcd358084017edddde25ae34425ebe599f Mon Sep 17 00:00:00 2001 From: fengjian Date: Thu, 24 Mar 2016 15:18:09 +0800 Subject: [PATCH 01/47] add gray for BitmapLess --- .../lesscode/app/activity/BitmapActivity.java | 2 +- .../lesscode/app/activity/CacheActivity.java | 2 ++ .../com/jayfeng/lesscode/core/BitmapLess.java | 28 +++++++++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/BitmapActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/BitmapActivity.java index 2274d42..704d696 100644 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/BitmapActivity.java +++ b/app/src/main/java/com/jayfeng/lesscode/app/activity/BitmapActivity.java @@ -25,7 +25,7 @@ protected void onCreate(Bundle savedInstanceState) { roundImageView = ViewLess.$(this, R.id.image_round); Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.girl2)).getBitmap(); - bitmap = BitmapLess.$round(bitmap, 100, true); + bitmap = BitmapLess.$gray(bitmap, true); roundImageView.setImageBitmap(bitmap); } } diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/CacheActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/CacheActivity.java index 82e49da..669693d 100644 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/CacheActivity.java +++ b/app/src/main/java/com/jayfeng/lesscode/app/activity/CacheActivity.java @@ -2,9 +2,11 @@ import android.app.Activity; import android.graphics.Bitmap; +import android.graphics.BitmapRegionDecoder; import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; +import android.support.v4.util.LruCache; import com.jayfeng.lesscode.app.R; diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/BitmapLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/BitmapLess.java index 60a971c..b59bd16 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/BitmapLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/BitmapLess.java @@ -5,6 +5,8 @@ import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; +import android.graphics.ColorMatrix; +import android.graphics.ColorMatrixColorFilter; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PorterDuff; @@ -308,4 +310,30 @@ public final class BitmapLess { return circleBitmap; } + + /** + * 灰阶效果 + * @param originBitmap + * @param recycle + * @return + */ + public static Bitmap $gray(Bitmap originBitmap, boolean recycle) { + Bitmap grayBitmap = Bitmap.createBitmap(originBitmap.getWidth(), + originBitmap.getHeight(), Bitmap.Config.RGB_565); + Canvas canvas = new Canvas(grayBitmap); + Paint paint = new Paint(); + ColorMatrix colorMatrix = new ColorMatrix(); + colorMatrix.setSaturation(0); + ColorMatrixColorFilter colorMatrixColorFilter = + new ColorMatrixColorFilter(colorMatrix); + paint.setColorFilter(colorMatrixColorFilter); + canvas.drawBitmap(originBitmap, 0, 0, paint); + + // 是否回收原始Bitmap + if (recycle && originBitmap != null && !originBitmap.isRecycled()) { + originBitmap.recycle(); + } + + return grayBitmap; + } } From 6f33a8a67cb0eb72a94d1f1271ac57212d524946 Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 30 Mar 2016 20:57:09 +0800 Subject: [PATCH 02/47] support log click to source by line number in android studio --- .../src/main/java/com/jayfeng/lesscode/core/LogLess.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/LogLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/LogLess.java index ad24a5e..1d18483 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/LogLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/LogLess.java @@ -153,12 +153,13 @@ private static String buildLogString(String str) { .append(str); } else { stringBuilder + .append("(") .append(caller.getFileName()) - .append(".") + .append(":") + .append(caller.getLineNumber()) + .append(").") .append(caller.getMethodName()) .append("():") - .append(caller.getLineNumber()) - .append(":") .append(str); } return stringBuilder.toString(); From 3858e470ba23e1257f8c1fee41c4e13adc6f8804 Mon Sep 17 00:00:00 2001 From: fengjian Date: Wed, 30 Mar 2016 21:36:41 +0800 Subject: [PATCH 03/47] support log string format, it can avoid release version log string concat for better performance --- .../lesscode/app/activity/MainActivity.java | 2 +- .../com/jayfeng/lesscode/core/LogLess.java | 29 ++++++++++++------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java index 89679c3..b341140 100644 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java +++ b/app/src/main/java/com/jayfeng/lesscode/app/activity/MainActivity.java @@ -62,7 +62,7 @@ public void onItemClick(AdapterView parent, View view, int position, long id) } }); - LogLess.$d("network:" + NetworkLess.$online() + ", type:" + NetworkLess.$type()); + LogLess.$d("network: %s, type: %s", NetworkLess.$online(), NetworkLess.$type()); Person person = new Person("fengj"); SerializeLess.$se(new File(getCacheDir(), "person").getAbsolutePath(), person); diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/LogLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/LogLess.java index 1d18483..1913128 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/LogLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/LogLess.java @@ -26,9 +26,9 @@ public final class LogLess { * * @param str */ - public static void v(String str) { + public static void v(String str, Object... args) { if ($.sDebug || DEBUG_TAG_LOG) { - Log.v(getTag(), buildLogString(str)); + Log.v(getTag(), buildLogString(str, args)); } } @@ -37,9 +37,9 @@ public static void v(String str) { * * @param str */ - public static void $d(String str) { + public static void $d(String str, Object... args) { if ($.sDebug || DEBUG_TAG_LOG) { - Log.d(getTag(), buildLogString(str)); + Log.d(getTag(), buildLogString(str, args)); } } @@ -48,9 +48,9 @@ public static void v(String str) { * * @param str */ - public static void $i(String str) { + public static void $i(String str, Object... args) { if ($.sDebug || DEBUG_TAG_LOG) { - Log.i(getTag(), buildLogString(str)); + Log.i(getTag(), buildLogString(str, args)); } } @@ -59,9 +59,9 @@ public static void v(String str) { * * @param str */ - public static void $w(String str) { + public static void $w(String str, Object... args) { if ($.sDebug || DEBUG_TAG_LOG) { - Log.w(getTag(), buildLogString(str)); + Log.w(getTag(), buildLogString(str, args)); } } @@ -70,9 +70,9 @@ public static void v(String str) { * * @param str */ - public static void $e(String str) { + public static void $e(String str, Object... args) { if ($.sDebug || DEBUG_TAG_LOG) { - Log.e(getTag(), buildLogString(str)); + Log.e(getTag(), buildLogString(str, args)); } } @@ -116,6 +116,7 @@ public static void v(String str) { /** * json + * * @param str */ public static void $json(String str) { @@ -142,7 +143,13 @@ private static String getTag() { * @param str * @return */ - private static String buildLogString(String str) { + private static String buildLogString(String str, Object... args) { + + // format string with args + if (args.length > 0) { + str = String.format(str, args); + } + StackTraceElement caller = new Throwable().fillInStackTrace().getStackTrace()[2]; StringBuilder stringBuilder = new StringBuilder(); if (TextUtils.isEmpty($.sTAG)) { From 1f0272b426481cc517487e1471e215ad95412edd Mon Sep 17 00:00:00 2001 From: Jinks Date: Fri, 1 Apr 2016 14:54:59 +0800 Subject: [PATCH 04/47] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/jayfeng/lesscode/core/KeyBoardLess.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/KeyBoardLess.java b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/KeyBoardLess.java index 11cb5ea..dbf98fd 100644 --- a/lesscode-core/src/main/java/com/jayfeng/lesscode/core/KeyBoardLess.java +++ b/lesscode-core/src/main/java/com/jayfeng/lesscode/core/KeyBoardLess.java @@ -17,7 +17,7 @@ public final class KeyBoardLess { public static void $show(Context context, View view) { InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); - imm.showSoftInput(view, InputMethodManager.RESULT_SHOWN); + imm.showSoftInput(view, InputMethodManager.SHOW_FORCED); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); } From 508f5972dff31c6d032b358d1325702a8c419383 Mon Sep 17 00:00:00 2001 From: fengjian Date: Fri, 1 Apr 2016 15:57:38 +0800 Subject: [PATCH 05/47] add sample code for KeyBoradLess --- .../app/activity/KeyboradActivity.java | 28 +++++++++++++++ app/src/main/res/layout/activity_keyborad.xml | 35 ++++++++++++++----- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/jayfeng/lesscode/app/activity/KeyboradActivity.java b/app/src/main/java/com/jayfeng/lesscode/app/activity/KeyboradActivity.java index a1612bd..e9dd8d7 100644 --- a/app/src/main/java/com/jayfeng/lesscode/app/activity/KeyboradActivity.java +++ b/app/src/main/java/com/jayfeng/lesscode/app/activity/KeyboradActivity.java @@ -2,14 +2,42 @@ import android.app.Activity; import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; import com.jayfeng.lesscode.app.R; +import com.jayfeng.lesscode.core.KeyBoardLess; +import com.jayfeng.lesscode.core.ViewLess; public class KeyboradActivity extends Activity { + private EditText editText; + private Button showKeyboradButton; + private Button hideKeyboradButton; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_keyborad); + + editText = ViewLess.$(this, R.id.edit); + showKeyboradButton = ViewLess.$(this, R.id.show); + hideKeyboradButton = ViewLess.$(this, R.id.hide); + + showKeyboradButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + KeyBoardLess.$show(KeyboradActivity.this, editText); + } + }); + + hideKeyboradButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + KeyBoardLess.$hide(KeyboradActivity.this, editText); + } + }); + } } diff --git a/app/src/main/res/layout/activity_keyborad.xml b/app/src/main/res/layout/activity_keyborad.xml index 4f669c7..ba68b90 100644 --- a/app/src/main/res/layout/activity_keyborad.xml +++ b/app/src/main/res/layout/activity_keyborad.xml @@ -1,12 +1,29 @@ - - + - +