Android Open Source - Sketcher-Tab Ribbon Style






From Project

Back to project page Sketcher-Tab.

License

The source code is released under:

Apache License

If you think the Android project Sketcher-Tab listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.sketchertab.style;
// w  ww  . j  a  v a  2  s . c  o  m
import android.graphics.Canvas;

import java.util.Map;

class RibbonStyle extends StyleBrush {
    private static final int LINE_NUM = 50;
    private Painter[] paintPool = new Painter[LINE_NUM];

    private float x;
    private float y;

    {
        paint.setAntiAlias(true);

        for (int i = 0; i < LINE_NUM; i++) {
            paintPool[i] = new Painter();
        }
    }

    @Override
    public void setOpacity(int opacity) {
        super.setOpacity((int) (opacity * 0.25f));
    }

    public void draw(Canvas c) {
        float startX;
        float startY;
        for (Painter painter : paintPool) {
            startX = painter.dx;
            startY = painter.dy;
            painter.ax = (painter.ax + (painter.dx - x) * painter.div) * painter.ease;
            painter.dx -= painter.ax;
            painter.ay = (painter.ay + (painter.dy - y) * painter.div) * painter.ease;
            painter.dy -= painter.ay;
            c.drawLine(startX, startY, painter.dx, painter.dy, paint);
        }
    }

    public void stroke(Canvas c, float x, float y) {
        this.x = x;
        this.y = y;
    }

    public void strokeStart(float x, float y) {
        this.x = x;
        this.y = y;

        for (Painter painter : paintPool) {
            painter.dx = x;
            painter.dy = y;
        }
    }

    public void saveState(Map<StylesFactory.BrushType, Object> state) {
    }

    public void restoreState(Map<StylesFactory.BrushType, Object> state) {
    }

    private class Painter {
        float dx = 0;
        float dy = 0;
        float ax = 0;
        float ay = 0;
        float div = 0.1F;
        float ease = (float) (Math.random() * 0.2 + 0.6);
    }
}




Java Source Code List

org.sketchertab.AboutDialog.java
org.sketchertab.BrushProperties.java
org.sketchertab.DocumentHistory.java
org.sketchertab.DrawController.java
org.sketchertab.FileHelper.java
org.sketchertab.HistoryItem.java
org.sketchertab.Sketcher.java
org.sketchertab.Style.java
org.sketchertab.SurfaceDiff.java
org.sketchertab.Surface.java
org.sketchertab.colorpicker.HuePicker.java
org.sketchertab.colorpicker.PickerDialog.java
org.sketchertab.colorpicker.Picker.java
org.sketchertab.colorpicker.PreviewView.java
org.sketchertab.colorpicker.SatValPicker.java
org.sketchertab.colorpicker.Utils.java
org.sketchertab.style.CirclesStyle.java
org.sketchertab.style.FurStyle.java
org.sketchertab.style.RibbonStyle.java
org.sketchertab.style.ShadedStyle.java
org.sketchertab.style.SimpleStyle.java
org.sketchertab.style.SketchyStyle.java
org.sketchertab.style.StyleBrush.java
org.sketchertab.style.StylesFactory.java
org.sketchertab.style.WebStyle.java