比较简单 但是作为kotlin练手

import android.content.Context

import android.graphics.*

import android.util.AttributeSet

import android.view.View

import com.loan.market.R

import com.loan.market.tools.ScreenTools

class ProgressBeautifulView @JvmOverloads constructor(context: Context, attributeSet: AttributeSet? = null, defStyleAttr: Int = 0) :

View(context, attributeSet, defStyleAttr) {

private var rectF: RectF? = null

private var rectFInner: RectF? = null

private var paint: Paint = Paint(Paint.ANTI_ALIAS_FLAG)

private var paintInner: Paint = Paint(Paint.ANTI_ALIAS_FLAG)

private var paintText: Paint = Paint(Paint.ANTI_ALIAS_FLAG)

private var widthSize: Int = 0

private var heightSize: Int = 0

private var strokeWid: Float = ScreenTools.dp2px(1f).toFloat()

private var innerLength: Float = 0f

public var nowPercent: Float = 0.1f

public var nowNumber: String = "10%"

init {

paint.strokeCap = Paint.Cap.ROUND

paint.isDither = true

paint.strokeWidth = strokeWid

paint.style = Paint.Style.STROKE

paint.color = context.resources.getColor(R.color.popup_outline)

paintInner.strokeCap = Paint.Cap.ROUND

paintInner.isDither = true

paintInner.strokeWidth = strokeWid

paintInner.style = Paint.Style.FILL

paintInner.color = context.resources.getColor(R.color.popup_inner)

paintText.strokeCap = Paint.Cap.ROUND

paintText.isDither = true

paintText.textSize = ScreenTools.sp2px(14f).toFloat()

paintText.style = Paint.Style.FILL

paintText.textAlign = Paint.Align.CENTER

paintText.color = context.resources.getColor(R.color.main_loan_list)

}

override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {

super.onSizeChanged(w, h, oldw, oldh)

widthSize = w

heightSize = h

rectF = RectF(0f + strokeWid / 2f, 0f + strokeWid / 2f, w.toFloat() - strokeWid / 2f, h.toFloat() - strokeWid / 2f)

innerLength = widthSize - ScreenTools.dp2px(6f).toFloat() * 2

}

override fun onDraw(canvas: Canvas) {

super.onDraw(canvas)

rectFInner = RectF(ScreenTools.dp2px(6f).toFloat(), ScreenTools.dp2px(8f).toFloat(), ScreenTools.dp2px(6f).toFloat() + innerLength * nowPercent, heightSize - ScreenTools.dp2px(8f).toFloat())

canvas.drawRoundRect(rectFInner, ScreenTools.dp2px(10f).toFloat(), ScreenTools.dp2px(10f).toFloat(), paintInner)

canvas.drawRoundRect(rectF, ScreenTools.dp2px(20f).toFloat(), ScreenTools.dp2px(20f).toFloat(), paint)

var fm: Paint.FontMetrics = paintText.getFontMetrics();

canvas.drawText(nowNumber.toString(), widthSize / 2f, heightSize / 2f - (fm.descent - (-fm.ascent + fm.descent) / 2), paintText)

}

}

android 手机存储空间 进度条,Android 进度条相关推荐

  1. android手机用户,2011年Android手机用户使用行为研究报告

    一.市场概述及研究背景 谷歌Android,自获得摩托罗拉.三星.HTC.中兴.华为等诸多品牌的拥趸开始,就扮演起了智能手机市场竞争格局颠覆者的角色.经过近三年时间的发展,Gartner最新数据显示, ...

  2. android手机存储空间划分及压图路径选取

    通过360手机助手图示,我们可以很清楚地看到整个手机存储空间分成三块: 各目录结构图如下: 通过手机自身查看,如图:   图中的16G指的是:system分区+cache分区+recovery分区+d ...

  3. 全球 android手机排行 2013,全球Android手机性能排行 三星Note 3夺魁

    尽管跑分测试成绩并不是手机实际性能表现的全部,但至少还是能够在很大程度上体现一款手机硬件配置的水平.而作为知名的跑分软件,安兔日前公布了今年第三季Android手机性能排行榜,则或许能够给我们一些参考 ...

  4. android 手机短信恢复,Android短信如何恢复

    Android短信如何恢复?虽然当下微信使用非常普及,但不少重要事项还是会使用短信进行沟通的,比如快递密码箱ID提醒.信用卡还款提醒.验证码等.其目的是确保一定收到,不会因断网.未登陆等消息消失.所以 ...

  5. android 手机 跑分榜,Android手机哪家强?安兔兔鲁大师榜单见分晓!

    影响智能手机性能强弱的最关键部件就是SoC(处理器),这颗芯片采用的制程工艺.CPU架构和频率.GPU架构和频率都是至关重要的参数. 问题来了,想让普通消费者搞明白7nm和7nm EUV工艺的差异:C ...

  6. 旧android手机当播放器,android手机立即变无线移动终端播放器 Qloud media 详细教程...

    Ubuntu终端播放器-mocp    作为Linux企业应用管理和维护,常需要putty远程连接维护服务器.Python开发. private void play(long position)// ...

  7. ios和android手机测试,IOS和Android进行手机测试有哪些区别?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 3.Sqlite数据库: 1android和IOS客户端都是采用sqlite数据库,SQLite是一个嵌入式库并且实现了零配置.无服务端和事务功能的SQL ...

  8. 买android手机,买大屏 Android 手机真的有必要吗?

    前言(废话) 我还记得第一次在店里见到初代三星 Galaxy Note 的时候,被它那块"巨型的" 5.3 英寸屏幕吓得愣了半天.我首先觉得它"大得不可思议", ...

  9. android手机性能,2月Android手机性能榜:骁龙865大显神威

    冬去春来,时间进入3月,万物复苏,手机厂商们也开始筹备自家的开年旗舰,新机的发布伴随着性能攀升,我们的2月Android手机性能榜如期到来. 本次榜单统计的时间为2020年2月1日-2020年2月29 ...

  10. 首台android手机,黑莓首台Android系统曲面屏手机Priv 真机和视频曝光

    [TechWeb报道]在上周五的黑莓第二季度财务会议上,官方首次确认了将推出Android系统手机,尽管这款产品已经被大家曝光的七零八落,同时黑莓还确认了这款手机的名称为Priv.随后,黑莓董事长兼C ...

最新文章

  1. 折叠屏就要来了,适配逼死 Android 开发?
  2. redis 支持 json_项目开发中如何使用redis-dump进行Redis数据库合并?
  3. pycharm调试显示图片
  4. SAP存货后续调整总结
  5. 用J-Link烧写u-boot到Nor Flash—— 韦东山嵌入式Linux视频学习笔记04
  6. ExtJS + Gears
  7. 一篇文章读懂MySQL的各种联合查询
  8. java的二叉树及三种遍历
  9. MySQL增强版命令行客户端连接工具(mycli)
  10. C++_编写动态链接库
  11. 适合独自一人宅在家必追十部影片推荐下载观看
  12. LeetCode答案汇总(持续更新...)
  13. 用Resource Hacker辅助升级相关测试
  14. 你知道Thread线程是如何运作的吗?
  15. 【CPRI协议v7.0】CPRI 8b/10b编码Scrambling功能
  16. 30岁 android,90后30岁倒计时
  17. 腾讯云cos上传文件
  18. 实用常识 | 写论文时如何引用插入脚注 / 如何自定义脚注符号 / 如何将多个脚注合并在一起
  19. 人在当时处境中,像旋涡中的一片落叶,身不由己
  20. android so 签名校验,Android-NDK-之so文件签名校验

热门文章

  1. Linux Windows Socket通信 端口开启
  2. oracle消耗资源,oracle中资源消耗查看
  3. swift 循环_Swift进行循环,切换,同时
  4. 关于无线鼠标你知道多少?
  5. 有一个三角形 Triangle,三边长分别为a, b, c (默认边长设为1) 写一类描述它。
  6. ​赞助计算机顶会,是时候更透明化了丨普林斯顿学者观点
  7. xScale应用程序性能的优化策略
  8. 2. SIM HOt PLUG DEBUG
  9. 智能触摸屏LCD浴室镜灯触摸芯片-DLT8T02S-杰力科创
  10. 程序员高考试卷!你满分了吗?