位置: 编程技术 - 正文

android 水平progressBar动态加载(Android 水平居中)

编辑:rootadmin

推荐整理分享android 水平progressBar动态加载(Android 水平居中),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Android 水平居中,Android 水平布局,Android 水平滚动不显示子视图,Android 水平换行,Android 水平换行,Android 水平居中,Android 水平居中,Android 水平布局,内容如对您有帮助,希望把文章链接给更多的朋友!

当你需要动态显示一个progressBar时,动态显示进度,并在右侧显示加载进度,请参考下面代码:

重写写布局

public class LineProgressBar extends View {private Paint paint;private int lineColor;private int lineProgressColor;private int textColor;private float textSize;private float textWidth;private float textMargin;private float lineHeight;private int max;private int progress = 0;private RectF pLine, bLine;private int progressOne;public LineProgressBar(Context context) {this(context, null);}public LineProgressBar(Context context, AttributeSet attrs) {this(context, attrs, 0);}public LineProgressBar(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);progressOne = 0;paint = new Paint();TypedArray mTypedArray = context.obtainStyledAttributes(attrs,R.styleable.LineProgressBar);// 获取自定义属性和默认&#;lineColor = mTypedArray.getColor(R.styleable.RoundProgressBar_lineColor, Color.RED);lineHeight = mTypedArray.getDimension(R.styleable.RoundProgressBar_lineHeight, );lineProgressColor = mTypedArray.getColor(R.styleable.RoundProgressBar_lineProgressColor, Color.GREEN);textColor = mTypedArray.getColor(R.styleable.RoundProgressBar_textColor, Color.GREEN);textSize = mTypedArray.getDimension(R.styleable.RoundProgressBar_textSize, );textWidth = mTypedArray.getDimension(R.styleable.RoundProgressBar_textWidth, );textMargin = mTypedArray.getDimension(R.styleable.RoundProgressBar_textMargin, 5);max = mTypedArray.getInteger(R.styleable.RoundProgressBar_max, );mTypedArray.recycle();pLine = new RectF();}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);float width = getWidth();float height = getHeight();float margin = (height - lineHeight)/2;float drawHeight = lineHeight &#; margin;if(bLine == null) bLine = new RectF(0, margin, width-textWidth-textMargin, drawHeight);paint.setColor(lineColor); // 设置背景颜色paint.setStyle(Paint.Style.FILL); // 设置填充paint.setAntiAlias(true); // 消除锯齿canvas.drawRoundRect(bLine, 5, 5, paint); //画进度背景paint.setStrokeWidth(0);paint.setColor(textColor);//设置字体颜色paint.setTextSize(textSize);//设置字体大小paint.setTypeface(Typeface.DEFAULT); // 设置字体int percent = (int) (((float) progressOne / (float) max) * ); canvas.drawText(percent &#; "%", width - textWidth - textMargin, height, paint); // 画出进度百分比paint.setColor(lineProgressColor);//设置进度颜色pLine.set(0, margin, progressOne*(width-textWidth-textMargin)/max, drawHeight);canvas.drawRoundRect(pLine, 5, 5, paint);//画进度if (progressOne < progress) {//循环画invalidate();progressOne&#;&#;;}}public synchronized int getMax() {return max;}public synchronized void setMax(int max) {if (max < 0) {throw new IllegalArgumentException("max not less than 0");}this.max = max;}public synchronized int getProgress() {return progress;}public synchronized void setProgress(int progress) {if (progress < 0) {throw new IllegalArgumentException("progress not less than 0");}if (progress > max) {progress = max;}if (progress <= max) {this.progress = progress;progressOne = 0;postInvalidate();}}public int getTextColor() {return textColor;}public void setTextColor(int textColor) {this.textColor = textColor;}public float getTextSize() {return textSize;}public void setTextSize(float textSize) {this.textSize = textSize;}}

用到的其他代码:

<declare-styleable name="LineProgressBar"> <attr name="textColor" format="color" /> <attr name="textSize" format="dimension" /> <attr name="max" format="integer"></attr> <attr name="textIsDisplayable" format="boolean"></attr> <attr name="lineColor" format="color" /> <attr name="lineHeight" format="dimension" /> <attr name="lineProgressColor" format="color" /> <attr name="textWidth" format="dimension" /> <attr name="textMargin" format="dimension" /> </declare-styleable>

android 水平progressBar动态加载(Android 水平居中)

使用方式:xml

<....LineProgressBar android:id="@&#;id/details_line_progress" android:layout_width="match_parent" android:layout_height="dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android_custom:lineColor="@color/whitebl" android_custom:lineHeight="5dp" android_custom:lineProgressColor="@color/title_color" android_custom:max="" android_custom:textColor="@color/title_color" android_custom:textMargin="5dp" android_custom:textSize="sp" android_custom:textWidth="dp" ></....LineProgressBar>

使用方式:代码

LineProgressBar progress;

....//初始化

progress.setProgress();

关于获取本机ip的问题 最经在做项目的时候发现一个问题,我使用手机获取手机在一个局域网内的ip的时候出现了获取ip出错的问题,我使用的方法是://获取本机IPpublicstaticStr

Android学习 - 自定义输入法 输入法的例子和源代码看了不少时间了,看得头很晕,很郁闷。静下心来把整个代码想了一遍,其实大部分代码都在处理绘制界面,以及事件的处理,

文章标题 使用Chrome来调试你的AndroidApp个人一直对Chrome情有独钟,Chrome除了更快之外,对开发者的支持更友好。内置强大的DeveloperTools,相信Web开发简直爱不释手

标签: Android 水平居中

本文链接地址:https://www.jiuchutong.com/biancheng/376668.html 转载请保留说明!

上一篇:Android 多图片情况下,发生内存溢出的解决办法(android图片库)

下一篇:关于获取本机ip的问题(获取本地ip地址失败)

  • 股权转让中土地房产占比较大时怎么交税
  • 个人所得税纳税义务人
  • 股权转让印花税税率
  • 印花税是什么时候交的钱
  • 个税专项附加继续教育
  • 转让不动产为什么不填写预缴申报表
  • 存货成本核算方法有哪些
  • 境外所得抵免限额小于实际缴纳
  • 调用系统服务出错核心征管后端
  • 不是本单位职工可以报销差旅费吗
  • 以前年度社保计提出错了怎么调整
  • 委托其他公司开票收款
  • 将资产货物用于业务宣传增值税
  • 建筑施工外包
  • 营业账簿是什么意思
  • 税控盘全额抵扣怎么做账
  • 广告宣传费可以抵扣进项税吗
  • 其他货币资金包括存出保证金吗
  • 酒店水电费分录
  • 临时设施需要验收吗
  • hdmi连接电视无法全屏
  • 鸿蒙系统桌面如何设置
  • 无线路由器指示灯怎么才是正常
  • 政府补贴专项资金使用要求
  • lsass.exe是什么进程
  • uniapp全局对象
  • 前端get请求传多个参数
  • php的基础知识
  • 以旧换新方式销售货物,以实际收取的价格
  • 莫尼莫克房车
  • 企业所得税可以结转以后年度扣除的费用
  • 应收账款应付账款属于什么科目
  • php图片上传代码详解
  • 简易计税结转账务处理
  • 暂估少了冲销时怎么办
  • html导航链接
  • 股票分红个人所得税
  • 递延收益为什么是递延所得税资产
  • 所得税费用影响企业营业利润吗
  • 分包工程款的账务处理
  • 合营企业长期股权投资
  • 提交表单数据有哪几种方法,php如何获取表单提交的数据
  • 购买房屋缴纳的契税可以退税政策
  • 预缴增值税后税款怎么算
  • acca中ebq等于
  • 速动比率例子
  • 长投对方亏损
  • 汇算清缴前取得暂估发票
  • 施工总包能分包土方吗
  • 折旧完的固定资产出售
  • 设备投入安装会计分录怎么写
  • 进项发票已经认证,对方作废了
  • 企业年报修改后没有公示怎么办
  • 年度总预算一般在次年
  • 其他收入属于什么收入
  • sqlserver存储过程实例详解
  • 捷波mig41tm主板
  • Win7系统重装后鼠标键盘不能用怎么办
  • wysafe.exe是什么
  • 查看端口信息命令
  • windows8开机启动项在哪里设置
  • 苹果发布会亮点速览
  • linux流量控制
  • windows10离线地图
  • 修改注册表命令
  • win8.1应用商店下载位置
  • nodeJS文件操作自动创建目录
  • Unity3D游戏开发(第2版)pdf
  • vue拦截器的作用及使用
  • js是函数式编程语言吗
  • firefox background-image垂直平铺问题的解决方法
  • Node.js中的construct构造函数
  • 'tools.jar' seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rathe
  • python怎么调用shell脚本
  • python如何发送http请求
  • ugui粒子ui层级
  • 购车发票包含
  • 增值税电子普通发票可以抵扣吗
  • 城市维护建设税怎么算
  • 汕头汕尾什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设