一个为设计师设计的 APP( _`)一个特别简单项目
主要用来练习 Rx ,当然这个适合初入 Rx 的看看。
自己参考的教程给 Android 开发者的 RxJava 详解
Github 地址:Gifts-for-designers可以给个 star 鼓励下( )っ
( _`) 好像这个项目没有很多代码需要解释,不过我还是整理一份
// 字体 Typeface fOntFace= Typeface.createFromAsset(getAssets(), "font/Inconsolata.otf"); Typeface tvFOntFace= Typeface.createFromAsset(getAssets(), "font/Lobster.ttf"); editTextHEX.setTypeface(fontFace); editTextRGB.setTypeface(fontFace); textView.setTypeface(tvFontFace);
RxTextView.textChanges(editTextHEX) .subscribeOn(AndroidSchedulers.mainThread()) .debounce(300, TimeUnit.MICROSECONDS) .map(new Func1<CharSequence, String>() { @Override public String call(CharSequence charSequence) { return charSequence.toString(); } }) .observeOn(AndroidSchedulers.mainThread()) .doOnNext(new Action1<String>() { @Override public void call(String s) { if (s.length() == 5) { setBackground("56abe4", 0); editTextRGB.setText(""); } if (!colors.isEmpty()) { colors.clear(); adapter.notifyDataSetChanged(); } } }) .filter(new Func1<String, Boolean>() { @Override public Boolean call(String s) { return s.length() > 5; } }) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Action1<String>() { @Override public void call(String s) { setBackground(s, 0); // addColorAdapter(s); changeToRGB(s); } })
/** * @param color * @param mark 0:HEX 1:RGB */ public void setBackground(String color, int mark) { int i = 0; ValueAnimator paramInteger; Drawable localDrawable = this.relativeLayout.getBackground(); if ((localDrawable instanceof ColorDrawable)) i = ((ColorDrawable) localDrawable).getColor(); if (mark == 0) { paramInteger = ValueAnimator.ofObject(new ArgbEvaluator(), i, Color .parseColor("#" + color)); } else { paramInteger = ValueAnimator.ofObject(new ArgbEvaluator(), i, mark); } paramInteger.setDuration(500L); paramInteger.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { public void onAnimationUpdate(ValueAnimator paramAnonymousValueAnimator) { relativeLayout.setBackgroundColor((Integer) paramAnonymousValueAnimator.getAnimatedValue()); } } ); paramInteger.start(); }
private void changeToRGB(String s) { int red = Integer.parseInt(String.valueOf(s.charAt(0)) + s.charAt(1), 16); int green = Integer.parseInt(String.valueOf(s.charAt(2)) + s.charAt(3), 16); int blue = Integer.parseInt(String.valueOf(s.charAt(4)) + s.charAt(5), 16); Log.d(TAG, red + " " + green + " " + blue); editTextRGB.setText("(" + red + "," + green + "," + blue + ")"); }
![]() | 1 master13 2016-01-21 11:31:29 +08:00 ![]() 所以这个项目叫“蓝屏的 gay ,好喝的 gay ”? |
![]() | 2 wingyiu 2016-01-21 11:34:57 +08:00 函数式编程啊 |
![]() | 5 anthonyeef 2016-01-21 12:39:10 +08:00 我发现 TODO & Issue 里的那些钩可以随意打上 & 取消…… ![]() |
![]() | 6 xcc3641 OP @anthonyeef markdown 里的~我也不知道为什么其他人也可以哈哈,但是你打了好像没有其他影响。哈哈 ( _`) |
![]() | 7 cheng4741 2016-01-22 13:36:22 +08:00 @anthonyeef markdown 渲染成 html 后都可以打勾 |