当前位置: 首页 > news >正文

企业为什么要建站台呢青岛如何建立企业网站企业

企业为什么要建站台呢,青岛如何建立企业网站企业,网站怎样做权重,广东建设网官网文章目录 一、进度条的属性和方法1.控件常用属性2.控件常用方法 二、系统提供的进度条1.圆形进度条用法:2.横线进度条用法 三、自定义进度条总结 一、进度条的属性和方法 1.控件常用属性 android:max:进度条的最大值 android:progress:进度…

文章目录

  • 一、进度条的属性和方法
    • 1.控件常用属性
    • 2.控件常用方法
  • 二、系统提供的进度条
    • 1.圆形进度条用法:
    • 2.横线进度条用法
  • 三、自定义进度条
  • 总结


一、进度条的属性和方法

1.控件常用属性

android:max:进度条的最大值
android:progress:进度条已完成进度值
android:progressDrawable:设置轨道对应的Drawable对象
android:indeterminate:如果设置成true,则进度条不精确显示进度
android:indeterminateDrawable:设置不显示进度的进度条的Drawable对象
android:indeterminateDuration:设置不精确显示进度的持续时间
android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!

2.控件常用方法

getMax():返回这个进度条的范围的上限
getProgress():返回进度
getSecondaryProgress():返回次要进度
incrementProgressBy(int diff):指定增加的进度
isIndeterminate():指示进度条是否在不确定模式下
setIndeterminate(boolean indeterminate):设置不确定模式下

二、系统提供的进度条

系统系统了四种进度条:分别是Small,Inverse,Large,Horizontal,前三种是圆形,最后一种是横线形,直接style引用即可
三种圆形的进度条无法显示进度

1.圆形进度条用法:

<ProgressBarstyle="@android:style/Widget.ProgressBar.Small"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true" />

2.横线进度条用法

布局文件

<ProgressBarandroid:id="@+id/prog"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="wrap_content"android:max="100"android:progress="0" />

java文件
下面的代码中,首先做了一个定时器模拟事务返回进度,每秒钟返回一次当前事务的进度,第二个定时器搭配hander每秒钟更新一次UI上显示的进度条
hander里面:
第一步获取以下当前进度条显示的进度,
第二步通过事务返回的进度计算在进度条上应该显示的进度,
第三步用应该显示的最新进度减去当前已经显示的进度获取当前进度条应该增加的进度
第四步调用进度条的incrementProgressBy方法更新进度条显示

public class MainActivity extends AppCompatActivity {ProgressBar prog;int a;     //事务执行的总进度int b = 0;     //事务执行的初始进度int c;     //进度条的总进度int h;      //进度条的当前进度Handler myHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == 111) {//获取进度条当前进度h = prog.getProgress();//计算当前实际进度double e = (double) b / a;double f = c * e;int g = (int) f;//计算要增加的进度int m = g - h;prog.incrementProgressBy(m);    //增加进度显示}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);prog = (ProgressBar) findViewById(R.id.prog);c = prog.getMax();//执行事务,每秒钟返回一次事务执行进度new Timer().schedule(new TimerTask() {@Overridepublic void run() {a = 500;b++;if (b > a) {cancel();}}}, 0, 1000);//每秒钟将事务返回的进度值通过hander更新到UI显示中new Timer().schedule(new TimerTask() {@Overridepublic void run() {if (b > a) {cancel();}else{//定时循环执行的内容myHandler.sendEmptyMessage(111);}}}, 0, 1000);}

三、自定义进度条

自定义一个类继承View绘制圆形进度条,然后引用,下面的代码可直接复制使用,代码中我暴露出了五个参数可以在使用时修改,java中调用先使用setmTargetProgress()方法修改进度值,然后调用invalidate()重新绘制view即可。

CustomPgBar.java

public class CustomPgBar extends View {private Paint mBackPaint;private Paint mFrontPaint;private Paint mTextPaint;private RectF mRect;private int mProgress = 0;private int mWidth;private int mHeight;private int mMax = 100;         //总进度值//以下五个参数已暴露出去,使用时可修改private int mTargetProgress = 0;    //进度值private float mRadius = 200;    //圆形大小private int mTextPaintColor = Color.GREEN;  //绘制文本字体颜色private int mFrontPaintColor = Color.GREEN; //绘制进度颜色private int mBackPaintColor = Color.BLUE;   //绘制总进度颜色private float pTextSize = (float) (mRadius * 0.6);     //绘制文本字体大小private float mStrokeWidth = (float) (mRadius * 0.25);    //进度粗细private float mHalfStrokeWidth = mStrokeWidth / 2;public CustomPgBar(Context context) {super(context);init();}public CustomPgBar(Context context, AttributeSet attrs) {super(context, attrs);init();}public CustomPgBar(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init();}//完成相关参数初始化private void init() {//总进度画笔mBackPaint = new Paint();mBackPaint.setColor(getmBackPaintColor());mBackPaint.setAntiAlias(true);mBackPaint.setStyle(Paint.Style.STROKE);mBackPaint.setStrokeWidth(mStrokeWidth);//进度画笔mFrontPaint = new Paint();mFrontPaint.setColor(getmFrontPaintColor());mFrontPaint.setAntiAlias(true);mFrontPaint.setStyle(Paint.Style.STROKE);mFrontPaint.setStrokeWidth(mStrokeWidth);//文本画笔mTextPaint = new Paint();mTextPaint.setColor(getmTextPaintColor());mTextPaint.setAntiAlias(true);mTextPaint.setTextSize(pTextSize);mTextPaint.setTextAlign(Paint.Align.CENTER);}//重写测量大小的onMeasure方法和绘制View的核心方法onDraw()@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);mWidth = getRealSize(widthMeasureSpec);mHeight = getRealSize(heightMeasureSpec);setMeasuredDimension(mWidth, mHeight);}@Overrideprotected void onDraw(Canvas canvas) {initRect();float angle = mProgress / (float) mMax * 360;canvas.drawCircle(mWidth / 2, mHeight / 2, getmRadius(), mBackPaint);canvas.drawArc(mRect, -90, angle, false, mFrontPaint);canvas.drawText(mProgress + "%", mWidth / 2 + mHalfStrokeWidth, mHeight / 2 + mHalfStrokeWidth, mTextPaint);if (mProgress < getmTargetProgress()) {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) (getmRadius() * 2 + mStrokeWidth);} else {result = size;}return result;}private void initRect() {if (mRect == null) {mRect = new RectF();int viewSize = (int) (getmRadius() * 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);}}public int getmTargetProgress() {return mTargetProgress;}public void setmTargetProgress(int mTargetProgress) {this.mTargetProgress = mTargetProgress;}public float getmRadius() {return mRadius;}public void setmRadius(float mRadius) {if (mRadius != 0) {this.mRadius = mRadius;}}public int getmTextPaintColor() {return mTextPaintColor;}public void setmTextPaintColor(int mTextPaintColor) {if (mTextPaintColor != 0) {this.mTextPaintColor = mTextPaintColor;}}public int getmFrontPaintColor() {return mFrontPaintColor;}public void setmFrontPaintColor(int mFrontPaintColor) {if (mFrontPaintColor != 0) {this.mFrontPaintColor = mFrontPaintColor;}}public int getmBackPaintColor() {return mBackPaintColor;}public void setmBackPaintColor(int mBackPaintColor) {if (mBackPaintColor != 0) {this.mBackPaintColor = mBackPaintColor;}}public int getmMax() {return mMax;}}

activity_main.xml引用

    <RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"><com.example.progressbardemo.CustomPgBarandroid:id="@+id/cusbar"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {CustomPgBar cusbar;int a;     //事务执行的总进度int b = 0;     //事务执行的初始进度int c;     //进度条的总进度Handler myHandler = new Handler() {@Overridepublic void handleMessage(Message msg) {if (msg.what == 111) {//计算当前实际进度double e = (double) b / a;double f = c * e;int g = (int) f;cusbar.setmTargetProgress(g);   //修改进度值cusbar.invalidate();    //重新绘制viwe}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);cusbar = (CustomPgBar) findViewById(R.id.cusbar);c = cusbar.getmMax();//执行事务,每秒钟返回一次事务执行进度new Timer().schedule(new TimerTask() {@Overridepublic void run() {a = 200;b++;if (b >= a) {cancel();}}}, 0, 1000);//每秒钟将事务返回的进度值通过hander更新到UI显示中new Timer().schedule(new TimerTask() {@Overridepublic void run() {if (b > a) {cancel();} else {//定时循环执行的内容myHandler.sendEmptyMessage(111);}}}, 0, 1000);}
}

总结

以上就是今天要讲的内容。

http://www.yayakq.cn/news/729635/

相关文章:

  • 厦门网站设计个人wordpress主体怎么用
  • 成品软件源码网站大全网站推广步骤有哪些
  • 织梦网站模板做的网站有哪些做网站为什么要租服务器
  • 网站备案是每年一次吗免费建网站 高校社团官方网站
  • 长丰县住房和城乡建设局网站网站建设的分阶段步骤
  • 重庆网站空间费用制作灯笼的做法
  • 在线做分析图的网站直播型网站开发
  • 建设品牌网站公司wordpress移动站点
  • 做公司网站有什么需要注意的王烨森
  • 怎样用vs做网站旅行社手机网站建设方案
  • 做360网站优化排wordpress post 属性
  • 趣php网站开发实战代码推广网站2024
  • 中国建设招标网?官方网站山西网站搜索排名优化公司
  • 做技术类网站赚钱吗闵行网站制作公司
  • 怎样做网站赚流量临沂做网站哪里好
  • 郑州小程序网站开发wordpress vps 256m
  • 深圳东莞的网站建设公司虚拟资源交易平台Wordpress源码
  • 网站左侧导航源码wordpress单栏主题 极简
  • 网站改版是否有影响免费photoshop下载
  • 网站改域名备案吗校园网认证登录入口
  • 网站维护需要有没有专门做外包销售的公司
  • 昆明网站建设搜王道下拉推广策略图片
  • 52做网站网站推广方法主要有哪几种
  • 无锡企业网站制作哪家好怎么在jsp网站做验证码
  • 揭阳网站建设方案托管网页版微信怎么加好友
  • 做货代用的网站网站建设 昆山
  • 厚街网站建设多少钱里水网站开发
  • 专业网站设计联系方式可信网站认证服务商
  • 网站开发软件wordpress侧栏导航栏
  • 企业网站推广可以选择哪些方法python做网站方便吗