一、 看效果

二、上代码

package com.framework.widget;

import android.app.activity;

import android.content.context;

import android.content.res.typedarray;

import android.graphics.canvas;

import android.graphics.color;

import android.graphics.paint;

import android.graphics.rect;

import android.graphics.rectf;

import android.util.attributeset;

import android.util.displaymetrics;

import android.view.view;

import com.r;

/**

* @author dahai

* @classname: (仿支付宝) 收益进度条

* @description: ${todo}

* @date ${date} ${time}

* @email 202491024@qq.com

* @since $android

进度条

*/

public class profitprogerssbar extends view {

//背景色

private static final int default_back_color = color.parsecolor("#ffffff");

//字的颜色

private static final int default_text_color = color.parsecolor("#ffffff");

//进度条背景颜色

private static final int default_progress_color = color.parsecolor("#abacaf");

//进度条默认的高度

private static final float default_progress_height =120f;

//文字的大小

private static final float default_text_size = 50;

/**

* 收益进度条左右两边margin大小

*/

private static final int margin_size = 20;

private context context;

/**

* 背景颜色的画笔

*/

private paint backgroundpaint;

/**

* 收益进度颜色的画笔

*/

private paint progresspaint;

/**

* 画文字的画笔

*/

private paint textpaint;

/**

* 背景的宽度

*/

private int view_background_width;

/**

* 背景的高度

*/

private float view_background_height = default_progress_height;

/**

* 日期

*/

private string date = "2016/12/07";

/**

* 描叙(百分比/元)

*/

private string desc = "2.1234";

/**

* 要显示的长度的百分比

*/

private int progress = 70;

//进度条颜色

private int progress_color = default_progress_color;

//背景色

private int progress_back_color = default_back_color;

//字的颜色

private int text_color = default_text_color;

//字的大小

private float text_size = default_text_size;

public profitprogerssbar(context context) {

super(context);

initview(context);

}

public profitprogerssbar(context context, attributeset attrs) {

super(context, attrs);

initview(context);

}

public profitprogerssbar(context context, attributeset attrs, int defstyleattr) {

super(context, attrs, defstyleattr);

initview(context);

}

private void initview(context context) {

this.context = context;

typedarray typedarray = this.context.obtainstyledattributes(r.styleable.profitprogerssbar);

progress_back_color = typedarray.getcolor(r.styleable.profitprogerssbar_progress_backg_color,default_back_color);

text_color = typedarray.getcolor(r.styleable.profitprogerssbar_progress_text_color,default_text_color);

text_size = typedarray.getdimension(r.styleable.profitprogerssbar_progress_text_size,default_text_size);

backgroundpaint = new paint();

backgroundpaint.setstrokewidth(10);

backgroundpaint.setcolor(progress_back_color);

backgroundpaint.setdither(true);

backgroundpaint.setantialias(true);

progresspaint = new paint();

progresspaint.setstrokewidth(10);

progresspaint.setdither(true);

progresspaint.setantialias(true);

textpaint = new paint();

textpaint.setstrokewidth(10);

textpaint.setdither(true);

textpaint.setantialias(true);

textpaint.settextsize(text_size);

displaymetrics d = new displaymetrics();

((activity) context).getwindowmanager().getdefaultdisplay().getmetrics(d);

view_background_width = d.widthpixels;

}

/**

* 初始化 进度条

* @param date

* @param desc

* @param progress

* @param progresscolor

*/

public void init(string date,string desc,int progress,int progresscolor){

this.date = date;

this.desc = desc;

this.progress = progress;

this.progress_color = progresscolor;

}

@override

protected void ondraw(canvas canvas) {

super.ondraw(canvas);

view_background_height = this.getmeasuredheight();

rectf r = new rectf();

r.left = 0;

r.top = 0;

r.right = view_background_width;

r.bottom = view_background_height;------------------------

canvas.drawrect(r, backgroundpaint);

rectf r1 = new rectf();

r1.left = 0;

r1.top = 0;

r1.right = view_background_width * progress / 100;

r1.bottom = view_background_height;------------------------

progresspaint.setcolor(progress_color);

canvas.drawrect(r1, progresspaint);

textpaint.setcolor(text_color);

rect r2 = new rect();

textpaint.gettextbounds(date,0,date.length(),r2);

canvas.drawtext(date, margin_size, (view_background_height-r2.top)/2, textpaint);//日期

rect r3 = new rect();

textpaint.gettextbounds(desc,0,desc.length(),r3);

if(progress>95&&progress<100){

canvas.drawtext(desc, r1.right-textpaint.measuretext(desc)-margin_size-30,(view_background_height-r3.top)/2, textpaint);

}else if(progress>=100) {

canvas.drawtext(desc, r1.right-textpaint.measuretext(desc)-margin_size-45,(view_background_height-r3.top)/2, textpaint);

}else {

canvas.drawtext(desc, r1.right - textpaint.measuretext(desc) - margin_size, (view_background_height - r3.top) / 2, textpaint);

}

invalidate();

}

}

三、

android:layout_width="match_parent"

android:layout_height="35dp"

android:layout_marginleft="10dp"

android:layout_marginright="10dp"

android:layout_margintop="10dp"

app:progress_back_color="@color/white"

app:progress_text_color="@color/white"

app:progress_text_size="14dp"

android:id="@+id/profitprogerssbar"

/>

以上所述是小编给大家介绍的android 仿支付宝中的余额宝收益进度条,希望对大家有所帮助

android 余额宝,Android 仿支付宝中的余额宝收益进度条相关推荐

  1. android 余额宝收益列表,Android 仿支付宝中的余额宝收益进度条

    一. 看效果 二.上代码 package com.framework.widget; import android.app.Activity; import android.content.Conte ...

  2. Android仿支付宝UI功能开发,Android 自定义view仿支付宝咻一咻功能

    支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能. 效果如下所示: 思路: 就是几个圆的半径不断在变大,这个可以使用动画缩放实现,还有透明动画 还有就是这是好几 ...

  3. android wear支付宝6,Android自定义View仿支付宝输入六位密码功能

    跟选择银行卡界面类似,也是用一个PopupWindow,不过输入密码界面是一个自定义view,当输入六位密码完成后用回调在Activity中获取到输入的密码并以Toast显示密码.效果图如下: 自定义 ...

  4. 【SwiftUI模块】0018、SwiftUI搭建一个类似支付宝中的余额宝余额数字动画效果

    SwiftUI模块系列 - 已更新18篇 SwiftUI项目 - 已更新1个项目 往期Demo源码下载 技术:SwiftUI.SwiftUI3.0.支付宝.余额宝.数字动画 运行环境: SwiftUI ...

  5. Android (仿支付宝) 收益进度条

    一. 看效果 二.上代码 package com.framework.widget; import android.app.Activity; import android.content.Conte ...

  6. Android 自定义View,自定义属性--自定义圆形进度条(整理)

    很多的时候,系统自带的View满足不了我们的功能需求,那么我们就需要自定义View来满足我们的需求 自定义View时要先继承View,添加类的构造方法,重写父类View的一些方法,例如onDraw,为 ...

  7. 仿网易云音乐的播放进度条

    仿网易云音乐的播放进度条,有三种状态:播放.暂停和拖动,只是实现了动画和主要的交互逻辑,其他细节(如暂停音乐的播放等)还需要自己完善: DKPlayerBar 是继承于UIControl的,如果想获取 ...

  8. android 自定义view仿支付宝写五褔及播放

    本文记录一下实现仿支付宝写五褔及回放的过程. 先看效果如下,没有找到相关的背景图,只能以田字格当作背景. 整个过程分为两部分,一部分是写字,一部份是回放. 该过程主要使用了path和pathmeasu ...

  9. android 自定义中文加盘,Android自定义View仿支付宝芝麻信用分仪表盘

    先看下iOS的芝麻信用分截图 这是我做的效果,还是有点差距的 支付宝9.9版本芝麻信用分的实现 首先初始化各种画笔,默认的size,padding,小圆点. (因为实在找不到原版芝麻信用的带点模糊效果 ...

最新文章

  1. 如何进行5万并发用户负载测试?
  2. 将dos格式文件转换为unix格式
  3. c 对一个mysql数据库进行操作_C/C++对MySQL操作
  4. 前端学习(3013):vue+element今日头条管理--表单验证基本使用
  5. CoreAnimation编程指南(简介)
  6. excel转html中文乱码,英文系统中Excel中文乱码问题
  7. 工作站的windows server 2008 终于安装好了
  8. python 学习笔记(6)-转载
  9. border-radius导致overflow:auto 或者 overflow:hidden失效,溢出问题解决方法
  10. VS+Qt报错无法解析的外部符号
  11. 海量数据处理:经典实例分析
  12. [python爬虫之路day4]:xpath基本知识lxml结合xpath进行数据分析爬取豆瓣电影
  13. C++扑克牌类的设计
  14. unlink快速入门
  15. 相对路径、绝对路径写法
  16. 宝塔面板服务器ip地址修改_宝塔,云帮手服务器控制面板,你用的哪一款?
  17. linux 基金会 认证,Linux基金会宣布新的Linux认证计划
  18. 大家都是在哪些网站找数据?
  19. 最新版SDWebImage的使用 -- 推荐 - 高效
  20. 机器学习入门(吴恩达)——单变量线性回归

热门文章

  1. Win10下OpenCV环境搭建(VS2017+OpenCV3.2.0)
  2. c语言下标法改为指针变量法,C语言教材第七章指针实验.doc
  3. 国外军旅片佳作-分享给喜欢的朋友们
  4. 修改科汛CMS团购功能 修改往期团购显示
  5. 小米10TPro参数配置
  6. android 高仿小米note2,小米Note再现高仿版真假难辨 山寨小米Note长什么样?
  7. 华为帐号,让您享受更多便捷优质服务
  8. 【翻译】英国HCSEC对华为产品安全方面的调查报告
  9. 软件管理和电脑管家打不开
  10. C语言进阶之路:如何去求任意两个数字的加减乘除问题