CircleTextView.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package com.quansu.heifengwuliu.view;
  2. import android.content.Context;
  3. import android.graphics.Canvas;
  4. import android.graphics.Path;
  5. import android.util.AttributeSet;
  6. /**
  7. * Created by zhulei on 15/12/10.
  8. */
  9. public class CircleTextView extends BaseTextView {
  10. public CircleTextView(Context context, AttributeSet attrs, int defStyleAttr) {
  11. super(context, attrs, defStyleAttr);
  12. }
  13. public CircleTextView(Context context, AttributeSet attrs) {
  14. this(context, attrs, 0);
  15. }
  16. public CircleTextView(Context context) {
  17. this(context, null);
  18. }
  19. @Override
  20. protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
  21. super.onMeasure(widthMeasureSpec, heightMeasureSpec);
  22. int measuredWith = getMeasuredWidth();
  23. int measuredHeight = getMeasuredHeight();
  24. int max = Math.max(measuredHeight, measuredWith);
  25. setMeasuredDimension(max, max);
  26. }
  27. @Override
  28. public void draw(Canvas canvas) {
  29. Path clipPath = new Path();
  30. clipPath.addCircle(getWidth() / 2, getHeight() / 2, Math.max(getWidth(), getHeight()) / 2, Path.Direction.CW);
  31. canvas.clipPath(clipPath);
  32. super.draw(canvas);
  33. }
  34. }