List of usage examples for android.graphics Paint setPathEffect
public PathEffect setPathEffect(PathEffect effect)
From source file:ee.ioc.phon.android.speak.Utils.java
static Bitmap bytesToBitmap(byte[] byteBuffer, int w, int h, int startPosition, int endPosition) { final ShortBuffer waveBuffer = ByteBuffer.wrap(byteBuffer).order(ByteOrder.LITTLE_ENDIAN).asShortBuffer(); final Bitmap b = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); final Canvas c = new Canvas(b); final Paint paint = new Paint(); paint.setColor(0xFFFFFFFF); // 0xAARRGGBB paint.setAntiAlias(true);/*from w w w . jav a2 s . c om*/ paint.setStyle(Paint.Style.STROKE); paint.setAlpha(80); final PathEffect effect = new CornerPathEffect(3); paint.setPathEffect(effect); final int numSamples = waveBuffer.remaining(); int endIndex; if (endPosition == 0) { endIndex = numSamples; } else { endIndex = Math.min(endPosition, numSamples); } int startIndex = startPosition - 2000; // include 250ms before speech if (startIndex < 0) { startIndex = 0; } final int numSamplePerWave = 200; // 8KHz 25ms = 200 samples final float scale = 10.0f / 65536.0f; final int count = (endIndex - startIndex) / numSamplePerWave; final float deltaX = 1.0f * w / count; int yMax = h / 2; Path path = new Path(); c.translate(0, yMax); float x = 0; path.moveTo(x, 0); for (int i = 0; i < count; i++) { final int avabs = getAverageAbs(waveBuffer, startIndex, i, numSamplePerWave); int sign = ((i & 01) == 0) ? -1 : 1; final float y = Math.min(yMax, avabs * h * scale) * sign; path.lineTo(x, y); x += deltaX; path.lineTo(x, y); } if (deltaX > 4) { paint.setStrokeWidth(2); } else { paint.setStrokeWidth(Math.max(0, (int) (deltaX - .05))); } c.drawPath(path, paint); return b; }
From source file:com.jjoe64.graphview_demos.fragments.Styling.java
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); GraphView graph = (GraphView) rootView.findViewById(R.id.graph); DataPoint[] points = new DataPoint[30]; for (int i = 0; i < 30; i++) { points[i] = new DataPoint(i, Math.sin(i * 0.5) * 20 * (Math.random() * 10 + 1)); }//from w w w . j a va2 s . c o m LineGraphSeries<DataPoint> series = new LineGraphSeries<DataPoint>(points); points = new DataPoint[15]; for (int i = 0; i < 15; i++) { points[i] = new DataPoint(i * 2, Math.sin(i * 0.5) * 20 * (Math.random() * 10 + 1)); } LineGraphSeries<DataPoint> series2 = new LineGraphSeries<DataPoint>(points); // styling grid/labels graph.getGridLabelRenderer().setGridColor(Color.RED); graph.getGridLabelRenderer().setHighlightZeroLines(false); graph.getGridLabelRenderer().setHorizontalLabelsColor(Color.GREEN); graph.getGridLabelRenderer().setVerticalLabelsColor(Color.RED); graph.getGridLabelRenderer().setVerticalLabelsAlign(Paint.Align.LEFT); graph.getGridLabelRenderer().setLabelVerticalWidth(150); graph.getGridLabelRenderer().setTextSize(40); graph.getGridLabelRenderer().setGridStyle(GridLabelRenderer.GridStyle.HORIZONTAL); graph.getGridLabelRenderer().reloadStyles(); // styling viewport graph.getViewport().setBackgroundColor(Color.argb(255, 222, 222, 222)); // styling series series.setTitle("Random Curve 1"); series.setColor(Color.GREEN); series.setDrawDataPoints(true); series.setDataPointsRadius(10); series.setThickness(8); series2.setTitle("Random Curve 2"); series2.setDrawBackground(true); series2.setBackgroundColor(Color.argb(100, 255, 255, 0)); Paint paint = new Paint(); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(10); paint.setPathEffect(new DashPathEffect(new float[] { 8, 5 }, 0)); series2.setCustomPaint(paint); // styling legend graph.getLegendRenderer().setVisible(true); graph.getLegendRenderer().setTextSize(25); graph.getLegendRenderer().setBackgroundColor(Color.argb(150, 50, 0, 0)); graph.getLegendRenderer().setTextColor(Color.WHITE); //graph.getLegendRenderer().setAlign(LegendRenderer.LegendAlign.TOP); //graph.getLegendRenderer().setMargin(30); graph.getLegendRenderer().setFixedPosition(150, 0); graph.addSeries(series); graph.addSeries(series2); return rootView; }
From source file:de.treichels.hott.ui.android.html.AndroidCurveImageGenerator.java
private Bitmap getBitmap(final Curve curve, final float scale, final boolean description) { final boolean pitchCurve = curve.getPoint()[0].getPosition() == 0; final float scale1 = scale * 0.75f; // smaller images on the android // platform// w ww.j a v a 2 s . co m final Bitmap image = Bitmap.createBitmap((int) (10 + 200 * scale1), (int) (10 + 250 * scale1), Bitmap.Config.ARGB_8888); final Canvas canvas = new Canvas(image); final Paint backgroundPaint = new Paint(); backgroundPaint.setColor(Color.WHITE); backgroundPaint.setStyle(Style.FILL); final Paint forgroundPaint = new Paint(); forgroundPaint.setColor(Color.BLACK); forgroundPaint.setStyle(Style.STROKE); forgroundPaint.setStrokeWidth(1.0f); forgroundPaint.setStrokeCap(Cap.BUTT); forgroundPaint.setStrokeJoin(Join.ROUND); forgroundPaint.setStrokeMiter(0.0f); final Paint curvePaint = new Paint(forgroundPaint); curvePaint.setFlags(Paint.ANTI_ALIAS_FLAG); curvePaint.setStrokeWidth(2.0f); final Paint pointPaint = new Paint(curvePaint); pointPaint.setStrokeWidth(5.0f); pointPaint.setStyle(Style.FILL_AND_STROKE); final Paint helpLinePaint = new Paint(forgroundPaint); helpLinePaint.setColor(Color.GRAY); helpLinePaint.setPathEffect(new DashPathEffect(new float[] { 5.0f, 5.0f }, 2.5f)); final Paint textPaint = new Paint(forgroundPaint); textPaint.setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD)); textPaint.setTextSize(12.0f); textPaint.setTextAlign(Align.CENTER); textPaint.setStyle(Style.FILL); canvas.drawRect(0, 0, 10 + 200 * scale1, 10 + 250 * scale1, backgroundPaint); canvas.drawRect(5, 5, 5 + 200 * scale1, 5 + 250 * scale1, forgroundPaint); canvas.drawLine(5, 5 + 25 * scale1, 5 + 200 * scale1, 5 + 25 * scale1, helpLinePaint); canvas.drawLine(5, 5 + 225 * scale1, 5 + 200 * scale1, 5 + 225 * scale1, helpLinePaint); if (!pitchCurve) { canvas.drawLine(5, 5 + 125 * scale1, 5 + 200 * scale1, 5 + 125 * scale1, helpLinePaint); canvas.drawLine(5 + 100 * scale1, 5, 5 + 100 * scale1, 5 + 250 * scale1, helpLinePaint); } if (curve.getPoint() != null) { int numPoints = 0; for (final CurvePoint p : curve.getPoint()) { if (p.isEnabled()) { numPoints++; } } final double[] xVals = new double[numPoints]; final double[] yVals = new double[numPoints]; int i = 0; for (final CurvePoint p : curve.getPoint()) { if (p.isEnabled()) { if (i == 0) { xVals[i] = pitchCurve ? 0 : -100; } else if (i == numPoints - 1) { xVals[i] = 100; } else { xVals[i] = p.getPosition(); } yVals[i] = p.getValue(); if (description) { float x0; float y0; if (pitchCurve) { x0 = (float) (5 + xVals[i] * 2 * scale1); y0 = (float) (5 + (225 - yVals[i] * 2) * scale1); } else { x0 = (float) (5 + (100 + xVals[i]) * scale1); y0 = (float) (5 + (125 - yVals[i]) * scale1); } canvas.drawPoint(x0, y0, pointPaint); if (y0 < 5 + 125 * scale1) { canvas.drawRect(x0 - 4, y0 + 5, x0 + 3, y0 + 18, backgroundPaint); canvas.drawText(Integer.toString(p.getNumber() + 1), x0 - 1, y0 + 16, textPaint); } else { canvas.drawRect(x0 - 4, y0 - 5, x0 + 3, y0 - 18, backgroundPaint); canvas.drawText(Integer.toString(p.getNumber() + 1), x0 - 1, y0 - 7, textPaint); } } i++; } } if (numPoints > 2 && curve.isSmoothing()) { final SplineInterpolator s = new SplineInterpolator(); final PolynomialSplineFunction function = s.interpolate(xVals, yVals); float x0 = 5; float y0; if (pitchCurve) { y0 = (float) (5 + (225 - yVals[0] * 2) * scale1); } else { y0 = (float) (5 + (125 - yVals[0]) * scale1); } while (x0 < 4 + 200 * scale1) { final float x1 = x0 + 1; float y1; if (pitchCurve) { y1 = (float) (5 + (225 - function.value((x1 - 5) / scale1 / 2) * 2) * scale1); } else { y1 = (float) (5 + (125 - function.value((x1 - 5) / scale1 - 100)) * scale1); } canvas.drawLine(x0, y0, x1, y1, curvePaint); x0 = x1; y0 = y1; } } else { for (i = 0; i < numPoints - 1; i++) { float x0, y0, x1, y1; if (pitchCurve) { x0 = (float) (5 + xVals[i] * 2 * scale1); y0 = (float) (5 + (225 - yVals[i] * 2) * scale1); x1 = (float) (5 + xVals[i + 1] * 2 * scale1); y1 = (float) (5 + (225 - yVals[i + 1] * 2) * scale1); } else { x0 = (float) (5 + (100 + xVals[i]) * scale1); y0 = (float) (5 + (125 - yVals[i]) * scale1); x1 = (float) (5 + (100 + xVals[i + 1]) * scale1); y1 = (float) (5 + (125 - yVals[i + 1]) * scale1); } canvas.drawLine(x0, y0, x1, y1, curvePaint); } } } return image; }
From source file:org.stockchart.core.Appearance.java
public void applyText(Paint p) { p.reset();/* w ww . jav a 2 s . co m*/ p.setTextSize(fFont.getSize()); p.setColor(fFont.getColor()); p.setTypeface(fFont.getTypeface()); p.setAntiAlias(fIsAntialias); p.setPathEffect(null); p.setStyle(Style.FILL); }
From source file:org.stockchart.core.Appearance.java
public void applyOutline(Paint p) { p.reset();/*from www . ja v a 2 s. co m*/ p.setShader(null); p.setColor(fOutlineColor); p.setAntiAlias(fIsAntialias); p.setStrokeWidth(fOutlineWidth); p.setStyle(Style.STROKE); switch (fOutlineStyle) { case DASH: p.setPathEffect(DASH_EFFECT); break; default: p.setPathEffect(null); } }
From source file:de.uni.stuttgart.informatik.ToureNPlaner.UI.Activities.MapScreen.MapScreen.java
private void setupWayOverlay() { Path p = new Path(); p.moveTo(4.f, 0.f);//from w w w . ja v a 2s.co m p.lineTo(0.f, -4.f); p.lineTo(8.f, -4.f); p.lineTo(12.f, 0.f); p.lineTo(8.f, 4.f); p.lineTo(0.f, 4.f); Paint fastWayOverlayColor = new Paint(Paint.ANTI_ALIAS_FLAG); fastWayOverlayColor.setStyle(Paint.Style.STROKE); fastWayOverlayColor.setColor(Color.BLUE); fastWayOverlayColor.setAlpha(160); fastWayOverlayColor.setStrokeWidth(5.f); fastWayOverlayColor.setStrokeJoin(Paint.Join.ROUND); fastWayOverlayColor.setPathEffect(new ComposePathEffect( new PathDashPathEffect(p, 12.f, 0.f, PathDashPathEffect.Style.ROTATE), new CornerPathEffect(30.f))); // create the WayOverlay and add the ways this.fastWayOverlay = new FastWayOverlay(session, fastWayOverlayColor); mapView.getOverlays().add(this.fastWayOverlay); Result result = session.getResult(); if (result != null) { addPathToMap(result.getWay()); } }
From source file:com.semfapp.adamdilger.semf.Take5PdfDocument.java
public PdfDocument createDocument() { //create new document PdfDocument document = new PdfDocument(); // crate a page description PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(A4_WIDTH, A4_HEIGHT, 1).create(); // start a page PdfDocument.Page page = document.startPage(pageInfo); can = page.getCanvas();/*ww w .jav a 2s . co m*/ Paint paint = new Paint(); paint.setStrokeWidth(0.5f); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.STROKE); can.drawRect(1, 1, 594, 395, paint); /** * Page one Text Fields */ drawText("Job Reference:", 9, 21, FONT14, carlitoBold); drawText("Date:", 354, 21, FONT14, carlitoBold); drawText("Time:", 473, 21, FONT14, carlitoBold); drawText("Location:", 9, 48, FONT14, carlitoBold); drawText("Task:", 261, 48, FONT14, carlitoBold); paint.setPathEffect(new DashPathEffect(new float[] { 1.5f, 1 }, 0)); can.drawLine(85, 36, 350, 36, paint); can.drawLine(386, 36, 468, 36, paint); can.drawLine(506, 36, 585, 36, paint); can.drawLine(59, 60, 256, 60, paint); can.drawLine(291, 60, 585, 60, paint); if (mEditTextValues[0] != null) { drawText(mEditTextValues[0], 98, 19, FONT14, roboto); } if (mEditTextValues[1] != null) { drawText(mEditTextValues[1], 65, 44, FONT14, roboto); } if (mEditTextValues[2] != null) { drawText(mEditTextValues[2], 297, 44, FONT14, roboto); } drawText(mDateString, 390, 19, FONT14, roboto); drawText(mTimeString, 509, 19, FONT14, roboto); /** * Section One (Stop, step back...) */ drawHeader1(8, 69, 202, "Stop, step back and think", 1); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(0.35f); paint.setPathEffect(null); int left, top; //draw left boxes left = 177; top = 108; for (int x = 0; x < mCheckBoxSectionOne.size(); x++) { Take5Data.CheckValue isYes = mCheckBoxSectionOne.get(x).getCheckValue(); float topLoc = top + (x * 33); if (x < 1) { //allowing for different 1st row size drawBox(left, topLoc, paint, true, isYes); } else { float newTop = topLoc - 6; if (x < 3) { drawBox(left, newTop, paint, false, isYes); } else { drawBox(left, newTop, paint, true, isYes); } } } DashPathEffect pathEffect = new DashPathEffect(new float[] { 1, 1.5f }, 0); drawText(mCheckBoxSectionOne.get(0).getHeading(), 13, 113, FONT12, carlitoBold); for (int x = 1; x < mCheckBoxSectionOne.size(); x++) { int height = 132 + ((x - 1) * 33); drawText(mCheckBoxSectionOne.get(x).getHeading(), 13, height, FONT12, carlitoBold); paint.setPathEffect(pathEffect); can.drawLine(10, height - 6, 222, height - 6, paint); paint.setPathEffect(null); } /** * Section Two (Identidy the Hazards...) */ drawHeader1(230, 69, 345, "Identify the hazard(s)", 2); //draw right boxes left = 542; top = 104; for (int x = 0; x < mCheckBoxSectionTwo.size(); x++) { float topLoc = top + (x * 20.7f); Take5Data.CheckValue isYes = mCheckBoxSectionTwo.get(x).getCheckValue(); drawBox(left, topLoc, paint, false, isYes); } for (int x = 0; x < mCheckBoxSectionTwo.size(); x++) { float height = 105 + (x * 20.7f); drawText(mCheckBoxSectionTwo.get(x).getHeading(), 238, height + 3, FONT12, carlitoBold); if (x > 0) { paint.setPathEffect(pathEffect); can.drawLine(238, height - 4, 581, height - 4, paint); paint.setPathEffect(null); } } /** * draw section 3,4,5 (including checkboxes) */ drawSmallCircle(8, 331, "Assess the level of risk", 3); drawSmallCircle(202, 331, "Control the hazards", 4); drawSmallCircle(398, 331, "Proceed safely", 5); /** * Draw Page Two */ int xLoc = 7; int yLoc = 420; int height; int width = 565; int RADIUS = 14; float INNER_RADIUS = 13; int centre = yLoc + 7 + RADIUS; width = xLoc + width; int middle = width - 340; can.drawRect(1, 420, 594, 420 + 395, paint); paint.setStyle(Paint.Style.FILL); paint.setTypeface(impact); paint.setTextSize(12); can.drawCircle(xLoc + RADIUS, centre, RADIUS, paint); can.drawRect(xLoc + RADIUS, centre - RADIUS, width, centre + RADIUS, paint); can.drawCircle(width, centre, RADIUS, paint); paint.setColor(Color.WHITE); can.drawCircle(xLoc + RADIUS, centre, INNER_RADIUS, paint); can.drawCircle(width, centre, INNER_RADIUS, paint); can.drawRect(middle, centre - INNER_RADIUS, width, centre + INNER_RADIUS, paint); paint.setColor(Color.BLACK); can.drawCircle(middle, centre, RADIUS, paint); paint.setColor(Color.WHITE); can.drawText("SAFE WORK METHOD STATEMENT (SWMS)", xLoc + 31, centre + 5, paint); paint.setTextSize(16); paint.setColor(Color.BLACK); can.drawText(String.valueOf(4), xLoc + RADIUS - 4, centre + 6, paint); height = 50; drawText("What are the hazards and risks?", 25, yLoc + height, FONT12, carlitoBold); drawText("Risk\nRating", 267, yLoc + 47, FONT12, carlitoBold); drawText("How will hazards and risks be controlled?", 319, yLoc + height, FONT12, carlitoBold); paint.setPathEffect(pathEffect); can.drawLine(262, yLoc + 45, 262, yLoc + 320, paint); can.drawLine(302, yLoc + 45, 302, yLoc + 320, paint); paint.setPathEffect(null); float currentItemHeight = yLoc + 75; float padding = 5; for (int x = 0; x < mRiskElements.size(); x++) { int textHeight = (int) currentItemHeight; float totalItemHeight = drawRiskElement(textHeight, mRiskElements.get(x)); currentItemHeight += totalItemHeight + padding; } paint.setPathEffect(pathEffect); height = yLoc + 350; drawText("Name/s:", 12, height, FONT12, carlitoBold); drawText(mEditTextValues[3], 55, height - 3, FONT14, roboto); paint.setPathEffect(pathEffect); can.drawLine(50, height + 12, 580, height + 12, paint); paint.setPathEffect(null); height = yLoc + 372; drawText("Signatures:", 12, height, FONT12, carlitoBold); drawText("Date:", 468, height, FONT12, carlitoBold); drawText(mDateString, 497, height - 3, FONT14, roboto); paint.setPathEffect(pathEffect); can.drawLine(60, height + 12, 464, height + 12, paint); can.drawLine(492, height + 12, 580, height + 12, paint); paint.setPathEffect(null); // finish the page document.finishPage(page); int imagePageCount = 2; for (Take5RiskElement risk : mRiskElements) { if (risk.imagePath != null) { // crate a page description PdfDocument.PageInfo pageInfo1 = new PdfDocument.PageInfo.Builder(A4_WIDTH, A4_HEIGHT, imagePageCount).create(); PdfDocument.Page imagePage = document.startPage(pageInfo1); Canvas canvas = imagePage.getCanvas(); try { Bitmap original = BitmapFactory.decodeFile(risk.imagePath); Bitmap b = resize(original, canvas.getWidth() - 100, canvas.getHeight() - 100); canvas.drawBitmap(b, 50, 60, new Paint()); // canvas.drawText(risk.getOne(), 50, 40, new Paint()); Path textPath = new Path(); textPath.moveTo(50, 50); textPath.lineTo(canvas.getWidth() - 100, 50); canvas.drawTextOnPath(risk.getOne(), textPath, 0, 0, new Paint()); } catch (Exception e) { e.printStackTrace(); } document.finishPage(imagePage); imagePageCount++; new File(risk.imagePath).delete(); } } // add more pages return document; }
From source file:org.navitproject.navit.NavitGraphics.java
protected void draw_polyline(Paint paint, int[] c) { paint.setStrokeWidth(c[0]);/*from w w w.j a v a 2 s . c o m*/ paint.setARGB(c[1], c[2], c[3], c[4]); paint.setStyle(Paint.Style.STROKE); //paint.setAntiAlias(true); //paint.setStrokeWidth(0); int ndashes = c[5]; float[] intervals = new float[ndashes + (ndashes % 2)]; for (int i = 0; i < ndashes; i++) { intervals[i] = c[6 + i]; } if ((ndashes % 2) == 1) { intervals[ndashes] = intervals[ndashes - 1]; } if (ndashes > 0) { paint.setPathEffect(new android.graphics.DashPathEffect(intervals, 0.0f)); } Path path = new Path(); path.moveTo(c[6 + ndashes], c[7 + ndashes]); for (int i = 8 + ndashes; i < c.length; i += 2) { path.lineTo(c[i], c[i + 1]); } //global_path.close(); draw_canvas.drawPath(path, paint); paint.setPathEffect(null); }