diff options
author | lookshe <github@lookshe.org> | 2015-04-15 21:29:31 +0200 |
---|---|---|
committer | lookshe <github@lookshe.org> | 2015-04-15 21:43:53 +0200 |
commit | b3b4a2902e37fb072e800f5dff0392755f5d4501 (patch) | |
tree | 0b0666dfbf20ef04e1d92531ce59d8697bb5c4eb /libs/colorpicker/src/main/java/yuku/ambilwarna/AmbilWarnaSquare.java | |
parent | 549810783ce651f27bdd386488b6690195522372 (diff) |
moved color picker to libs
Diffstat (limited to 'libs/colorpicker/src/main/java/yuku/ambilwarna/AmbilWarnaSquare.java')
-rw-r--r-- | libs/colorpicker/src/main/java/yuku/ambilwarna/AmbilWarnaSquare.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/libs/colorpicker/src/main/java/yuku/ambilwarna/AmbilWarnaSquare.java b/libs/colorpicker/src/main/java/yuku/ambilwarna/AmbilWarnaSquare.java new file mode 100644 index 00000000..1f0c86e4 --- /dev/null +++ b/libs/colorpicker/src/main/java/yuku/ambilwarna/AmbilWarnaSquare.java @@ -0,0 +1,46 @@ +package yuku.ambilwarna; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ComposeShader; +import android.graphics.LinearGradient; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.Shader; +import android.graphics.Shader.TileMode; +import android.util.AttributeSet; +import android.view.View; + +public class AmbilWarnaSquare extends View { + Paint paint; + Shader luar; + final float[] color = { 1.f, 1.f, 1.f }; + + public AmbilWarnaSquare(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public AmbilWarnaSquare(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + } + + @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + if (paint == null) { + paint = new Paint(); + luar = new LinearGradient(0.f, 0.f, 0.f, this.getMeasuredHeight(), 0xffffffff, 0xff000000, TileMode.CLAMP); + } + int rgb = Color.HSVToColor(color); + Shader dalam = new LinearGradient(0.f, 0.f, this.getMeasuredWidth(), 0.f, 0xffffffff, rgb, TileMode.CLAMP); + ComposeShader shader = new ComposeShader(luar, dalam, PorterDuff.Mode.MULTIPLY); + paint.setShader(shader); + canvas.drawRect(0.f, 0.f, this.getMeasuredWidth(), this.getMeasuredHeight(), paint); + } + + void setHue(float hue) { + color[0] = hue; + invalidate(); + } +} |