发表日期: 2021-07-25 17:32:19 浏览次数:76
长葛微信公众号代运营【长葛商城小程序开发】长葛微信公众号编辑排版设计_长葛微信小程序制作公司—长葛微信公众号小程序托管服务中心

长葛此地名,最早见于《春秋左氏传》:“鲁隐公五年,宋人代郑围长葛”,鲁隐公五年,即公元前718年。又(民国十九年)长葛县志记载:长葛,盖葛天氏故址也;后人思永其泽,故名曰长葛(见旧志)。战国时,“其社中树暴长,更名长社”。 [17]
春秋时,长葛为郑国城邑,宋人伐郑围长葛,引发“长葛之战” [18] ,其后周郑交恶,大战于长葛,史称“繻葛之战”,长葛亦称“繻葛” [19] 。微信公众号开发
战国时,郑国为韩哀侯所灭,长葛归属于韩(周烈王元年,即前375年),后为魏伐取,长葛归魏,改名长社。
秦始皇统一中国后,在全国范围内推行郡县制,长社始为县,属颍川郡。汉承秦制,长社仍属颍川郡。王莽新朝,改颍川郡为左队,长社属左队。东汉,复西汉旧制,长社属颍川郡。东汉末,行州郡县三级制,长社仍属颍川郡(属豫州),东汉末年,南方黄巾军与东汉官军、地方义兵联军大战于长葛,史称“长社之战”。
相信你看完2会吐槽,卧槽,这么坑爹,拿个动画来坑人,哈哈,实际开发中都这样,当然上述 这种情况只适用于不用显示进度的场合,如果要显示进度的场合就没用处了,好吧,接下来看下 网上一个简单的自定义圆形进度条!代码还是比较简单,容易理解,又兴趣可以看看,或者进行相关扩展~
运行效果图:

实现代码:
自定义View类:
/**
* Created by Jay on 2015/8/5 0005.
*/public class CirclePgBar extends View {
private Paint mBackPaint;
private Paint mFrontPaint;
private Paint mTextPaint;
private float mStrokeWidth = 50;
private float mHalfStrokeWidth = mStrokeWidth / 2;
private float mRadius = 200;
private RectF mRect;
private int mProgress = 0;
//目标值,想改多少就改多少
private int mTargetProgress = 90;
private int mMax = 100;
private int mWidth;
private int mHeight;
public CirclePgBar(Context context) {
super(context);
init();
}
public CirclePgBar(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CirclePgBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
//完成相关参数初始化
private void init() {
mBackPaint = new Paint();
mBackPaint.setColor(Color.WHITE);
mBackPaint.setAntiAlias(true);
mBackPaint.setStyle(Paint.Style.STROKE);
mBackPaint.setStrokeWidth(mStrokeWidth);
mFrontPaint = new Paint();
mFrontPaint.setColor(Color.GREEN);
mFrontPaint.setAntiAlias(true);
mFrontPaint.setStyle(Paint.Style.STROKE);
mFrontPaint.setStrokeWidth(mStrokeWidth);
mTextPaint = new Paint();
mTextPaint.setColor(Color.GREEN);
mTextPaint.setAntiAlias(true);
mTextPaint.setTextSize(80);
mTextPaint.setTextAlign(Paint.Align.CENTER);
}
//重写测量大小的onMeasure方法和绘制View的核心方法onDraw()
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mWidth = getRealSize(widthMeasureSpec);
mHeight = getRealSize(heightMeasureSpec);
setMeasuredDimension(mWidth, mHeight);
}
@Override
protected void onDraw(Canvas canvas) {
initRect();
float angle = mProgress / (float) mMax * 360;
canvas.drawCircle(mWidth / 2, mHeight / 2, mRadius, mBackPaint);
canvas.drawArc(mRect, -90, angle, false, mFrontPaint);
canvas.drawText(mProgress + "%", mWidth / 2 + mHalfStrokeWidth, mHeight / 2 + mHalfStrokeWidth, mTextPaint);
if (mProgress < mTargetProgress) {
mProgress += 1;
invalidate();
}
}
public int getRealSize(int measureSpec) {
int result = 1;
int mode = MeasureSpec.getMode(measureSpec);
int size = MeasureSpec.getSize(measureSpec);
if (mode == MeasureSpec.AT_MOST || mode == MeasureSpec.UNSPECIFIED) {
//自己计算
result = (int) (mRadius * 2 + mStrokeWidth);
} else {
result = size;
}
return result;
}
private void initRect() {
if (mRect == null) {
mRect = new RectF();
int viewSize = (int) (mRadius * 2);
int left = (mWidth - viewSize) / 2;
int top = (mHeight - viewSize) / 2;
int right = left + viewSize;
int bottom = top + viewSize;
mRect.set(left, top, right, bottom);
}
}}然后在布局文件中加上:
<com.jay.progressbardemo.CirclePgBar android:layout_width="match_parent" android:layout_height="match_parent"/>
长葛微信公众号代运营【长葛商城小程序开发】长葛微信公众号编辑排版设计_长葛微信小程序制作公司—长葛微信公众号小程序托管服务中心