自定义绘制圆环与实心圆(带文字)
来源:互联网 发布:淘宝广告法禁用词 编辑:程序博客网 时间:2024/05/03 21:18
自定义绘制圆环
package com.cn.myvdun; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; public class RingView extends View { private final Paint paint; private final Context context; public RingView(Context context) { // TODO Auto-generated constructor stub this(context, null); } public RingView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub this.context = context; this.paint = new Paint(); this.paint.setAntiAlias(true); //消除锯齿 this.paint.setStyle(Paint.Style.STROKE); //绘制空心圆 } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub int center = getWidth()/2; int innerCircle = dip2px(context, 83); //设置内圆半径 int ringWidth = dip2px(context, 5); //设置圆环宽度 //绘制内圆 this.paint.setARGB(155, 167, 190, 206); this.paint.setStrokeWidth(2); canvas.drawCircle(center,center, innerCircle, this.paint); //绘制圆环 this.paint.setARGB(255, 212 ,225, 233); this.paint.setStrokeWidth(ringWidth); canvas.drawCircle(center,center, innerCircle+1+ringWidth/2, this.paint); //绘制外圆 this.paint.setARGB(155, 167, 190, 206); this.paint.setStrokeWidth(2); canvas.drawCircle(center,center, innerCircle+ringWidth, this.paint); super.onDraw(canvas); } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } }
//之后XML布局中引用就OK了
自定义绘制圆环(带文字)
import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.support.v4.content.ContextCompat;import android.util.AttributeSet;import android.view.View;public class CircleView extends View { private Paint mPaintCircle; private Paint mPaintText; public CircleView(Context context) { this(context, null); } public CircleView(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs); } private void init(Context context, AttributeSet attrs) { mPaintCircle = new Paint(Paint.ANTI_ALIAS_FLAG); //添加文字的画加入以下代码 mPaintText = new Paint(Paint.ANTI_ALIAS_FLAG); mPaintText.setColor(ContextCompat.getColor(context, android.R.color.black)); mPaintText.setTextSize(40F); mTextStr = "正正正正正正正正"; mBoundText = new Rect(); mPaintText.getTextBounds(mTextStr, 0, mTextStr.length(), mBoundText); mTextWidth = mBoundText.width(); mTextHeight = mBoundText.height(); } private int mWidth; private int mHeight; private float mRadius; protected void onSizeChanged (int w, int h, int oldw, int oldh) { mWidth = w; // x 的值就是宽度的一半 mHeight = h; // y 的值就是高度的一半 mRadius = Math.min(mWidth / 2, mHeight / 2); // 得到了radius的值 } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawCircle(mWidth / 2, mHeight / 2, mRadius, mPaintCircle); //添加文字添加 canvas.drawText(mTextStr, (mWidth-mTextWidth) / 2, (mHeight + mTextHeight) / 2, mPaintText); }}
更详细的了解请去原地址查看
0 0
- 自定义绘制圆环与实心圆(带文字)
- 自定义View实心圆和圆环
- Android自定义View圆环带文字进度条
- 绘制实心圆
- cocos2dx绘制实心圆
- Android自定义View --- 绘制圆环
- 自定义View之绘制圆环
- Anroid自定义View-绘制圆环
- MFC利用CPen与CBrush绘制实心圆
- Android canvas 绘制实心圆
- 自定义圆与圆环实现点击
- Matlab绘制实心圆和实心圆点
- android--笔记--自定义View绘制圆环
- 自定义属性和圆环的绘制
- 自定义绘制圆形、圆环和弧线
- android绘制实心圆、空心圆
- C# GDI+ 绘制圆角实心矩形
- Arx 多义线(AcDbPolyline)绘制实心圆
- Android系统启动——SystemServer进程启动
- cocos2d-x 坐标系
- 走你
- Opencv绘制直方图及创建按钮遇到的问题
- TabLayout的自定义实现选项卡背景的滑动动画
- 自定义绘制圆环与实心圆(带文字)
- LeetCode No.46 Permutations
- 《C++ Primer Plus 6》(1~4章)复习总结(二)
- 个人记录-LeetCode 21. Merge Two Sorted Lists
- 微信
- Mahjong_ssl2553_暴力
- RxJava 2.0有什么不同(译)
- 【NOIP2016提高A组集训第8场11.5】心理学概论
- 对象序列化