Android(安卓)仿徽章圆形view
16lz
2021-01-26
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改为红色圆环。
更多相关文章
- 解决报错:The versions of the Android(安卓)Gradle plugin and G
- 浅析Android(安卓)Camera开发中的三个尺寸和三种变形 (贡献一个
- android studio不能运行
- android5.1 以太网启动已经修改为静态IP
- Android(安卓)Studio 入门问题一
- android将ROM改为默认开启调试模式和未知源,默认关闭GPS
- Drawable的详解
- Android(安卓)Theme.AppCompat.Light报错
- 关于AlertDialog.getWindow().setContentView(view)不能弹出输入