package ja.burhanrashid52.photoeditor.view;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.DashPathEffect;import android.graphics.Paint;import android.graphics.Path;import android.graphics.Rect;import android.graphics.RectF;import android.util.AttributeSet;import android.widget.TextView;/** * @author dell * @date 2019/2/21 * @time 16:33 **/@SuppressLint("AppCompatCustomView")public class CustomCirclePathView extends TextView {    private Bitmap bitmap;    private Paint paint;    public CustomCirclePathView(Context context) {        super(context);        initPaint();    }    public CustomCirclePathView(Context context, AttributeSet attrs) {        super(context, attrs);        initPaint();    }    public CustomCirclePathView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        initPaint();    }    private void initPaint() {        paint = new Paint();        paint.setAntiAlias(true);        paint.setPathEffect(new DashPathEffect(new float[]{20, 10}, 1));    }    public void setCircleBitmap(Bitmap bitmap) {        this.bitmap = bitmap;        invalidate();    }    @Override    protected void onDraw(Canvas canvas) {        RectF bgOval = new RectF(0, 0, getWidth(), getHeight());        if (bitmap != null) {            Rect rectSrc = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());            canvas.drawBitmap(bitmap, rectSrc, bgOval, null);            canvas.save();        }        RectF oval = new RectF(getTextSize(), getTextSize(), getWidth() - getTextSize(), getHeight() - getTextSize());        Path path = new Path();        path.addArc(oval, 95, 350);        paint.setTextAlign(Paint.Align.CENTER);        paint.setTextSize(getTextSize());        paint.setTypeface(getTypeface());        paint.setColor(getCurrentTextColor());        paint.setStyle(Paint.Style.FILL);        canvas.drawTextOnPath(getText().toString(), path, 0, 0, paint);    }}

android:hardwareAccelerated="false"时,会出现文字变形情况,当然也可以把bitmap改为红色圆环。

更多相关文章

  1. 解决报错:The versions of the Android(安卓)Gradle plugin and G
  2. 浅析Android(安卓)Camera开发中的三个尺寸和三种变形 (贡献一个
  3. android studio不能运行
  4. android5.1 以太网启动已经修改为静态IP
  5. Android(安卓)Studio 入门问题一
  6. android将ROM改为默认开启调试模式和未知源,默认关闭GPS
  7. Drawable的详解
  8. Android(安卓)Theme.AppCompat.Light报错
  9. 关于AlertDialog.getWindow().setContentView(view)不能弹出输入

随机推荐

  1. Android布局优化
  2. androidのMMS短信发送过程(二)
  3. 【android】解决设置ImageView的scaletyp
  4. 自动完成文本框AutoCompleteTextView
  5. Android中为PopupWindow设置半透明背景的
  6. Android(安卓)最新获取手机内置存储大小,S
  7. Android上传文件至PHP服务器
  8. 2011.08.18(2)——— android 自定义组合组
  9. Linux 下的ADT 权限问题
  10. android唤起另外一个程序