Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. private Context mContext;
  2. private String mText = "";
  3. private int mTextSize;
  4. private Paint mPaint;
  5.  
  6. private int paddingLeft = 0;
  7. private int paddingRight = 0;
  8. private int paddingTop = 0;
  9. private int paddingBottom = 0;
  10.  
  11. private int fontSize = 100;
  12.  
  13. public void setText(String text)
  14. {
  15. mText = text;
  16. }
  17.  
  18. public FastTextView (Context context)
  19. {
  20. super(context);
  21. initialize();
  22. }
  23.  
  24. public FastTextView (Context context, AttributeSet attrs)
  25. {
  26. super(context, attrs);
  27. initialize();
  28. }
  29.  
  30. public void setPaddingLeft(int padding)
  31. {
  32. paddingLeft = padding;
  33. }
  34.  
  35. public void setPaddingRight(int padding)
  36. {
  37. paddingRight = padding;
  38. }
  39.  
  40. public void setPaddingBottom(int padding)
  41. {
  42. paddingBottom = padding;
  43. }
  44.  
  45. public void setPaddingTop(int padding)
  46. {
  47. paddingTop = padding;
  48. }
  49.  
  50. public void setFontSize(int size)
  51. {
  52. fontSize = size;
  53. }
  54.  
  55. @Override
  56. protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
  57. {
  58. super.onMeasure(widthMeasureSpec, heightMeasureSpec);
  59. Rect rect = new Rect();
  60. mPaint.getTextBounds(mText.toString(), 0, mText.length(), rect);
  61.  
  62. int width = Math.max(rect.width(), getSuggestedMinimumWidth()) + paddingLeft + paddingRight;
  63. int height = Math.max(rect.height(), getSuggestedMinimumHeight()) + paddingTop + paddingBottom;
  64.  
  65. setMeasuredDimension(width, height);
  66. }
  67.  
  68. /**
  69. * Initialize the view
  70. */
  71. private void initialize()
  72. {
  73. mContext = getContext();
  74. mPaint = new Paint();
  75. mPaint.setColor(Color.RED);
  76. mPaint.setTextSize(fontSize);
  77. mPaint.setTextAlign(Align.LEFT);
  78. setBackgroundColor(Color.GREEN);
  79. }
  80.  
  81. @Override
  82. protected void onDraw(Canvas canvas)
  83. {
  84. super.onDraw(canvas);
  85. canvas.drawColor(Color.BLUE);
  86. int x = paddingLeft;
  87. int y = paddingTop + fontSize;
  88.  
  89. if (mText.length() > 0) {
  90. canvas.drawText(mText, x, y-fontSize/4, mPaint);
  91. }
  92. }
  93.  
  94. canvas.drawText(mText, 0, mText.length() - 1, 0, mTextSize, mPaint);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement