一个为设计师设计的 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 1
所以这个项目叫“蓝屏的 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 后都可以打勾
|