Advertisement
Guest User

Untitled

a guest
May 26th, 2016
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. class V extends View {
  2. Path path;
  3. TextPaint paint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
  4. Layout layout;
  5. String source = "The silence of your volumes will appear extraordinarilly when you avoid that surrender is the seeker.";
  6.  
  7. public V(Context context) {
  8. super(context);
  9. float size = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics());
  10. paint.setTextSize(size);
  11. paint.setColor(Color.WHITE);
  12. paint.setTextAlign(Paint.Align.CENTER);
  13. }
  14.  
  15. @Override
  16. protected void onSizeChanged(int w, int h, int oldw, int oldh) {
  17. path = new Path();
  18. float size = paint.getTextSize();
  19. path.moveTo(size, size);
  20. path.quadTo(w / 2, -size, w - size, size);
  21. PathMeasure pm = new PathMeasure(path, false);
  22. layout = new StaticLayout(source, paint, (int) pm.getLength(), Layout.Alignment.ALIGN_NORMAL, 1, 0, false);
  23. }
  24.  
  25. @Override
  26. protected void onDraw(Canvas canvas) {
  27. int numLines = layout.getLineCount();
  28. for (int i = 0; i < numLines; i++) {
  29. int start = layout.getLineStart(i);
  30. int end = layout.getLineEnd(i);
  31. canvas.save();
  32. canvas.translate(0, layout.getLineBaseline(i));
  33. canvas.drawTextOnPath(source.substring(start, end), path, 0, 0, paint);
  34. canvas.restore();
  35. }
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement