android 余额宝,Android 仿支付宝中的余额宝收益进度条
一、 看效果
二、上代码
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 仿支付宝中的余额宝收益进度条相关推荐
- android 余额宝收益列表,Android 仿支付宝中的余额宝收益进度条
一. 看效果 二.上代码 package com.framework.widget; import android.app.Activity; import android.content.Conte ...
- Android仿支付宝UI功能开发,Android 自定义view仿支付宝咻一咻功能
支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能. 效果如下所示: 思路: 就是几个圆的半径不断在变大,这个可以使用动画缩放实现,还有透明动画 还有就是这是好几 ...
- android wear支付宝6,Android自定义View仿支付宝输入六位密码功能
跟选择银行卡界面类似,也是用一个PopupWindow,不过输入密码界面是一个自定义view,当输入六位密码完成后用回调在Activity中获取到输入的密码并以Toast显示密码.效果图如下: 自定义 ...
- 【SwiftUI模块】0018、SwiftUI搭建一个类似支付宝中的余额宝余额数字动画效果
SwiftUI模块系列 - 已更新18篇 SwiftUI项目 - 已更新1个项目 往期Demo源码下载 技术:SwiftUI.SwiftUI3.0.支付宝.余额宝.数字动画 运行环境: SwiftUI ...
- Android (仿支付宝) 收益进度条
一. 看效果 二.上代码 package com.framework.widget; import android.app.Activity; import android.content.Conte ...
- Android 自定义View,自定义属性--自定义圆形进度条(整理)
很多的时候,系统自带的View满足不了我们的功能需求,那么我们就需要自定义View来满足我们的需求 自定义View时要先继承View,添加类的构造方法,重写父类View的一些方法,例如onDraw,为 ...
- 仿网易云音乐的播放进度条
仿网易云音乐的播放进度条,有三种状态:播放.暂停和拖动,只是实现了动画和主要的交互逻辑,其他细节(如暂停音乐的播放等)还需要自己完善: DKPlayerBar 是继承于UIControl的,如果想获取 ...
- android 自定义view仿支付宝写五褔及播放
本文记录一下实现仿支付宝写五褔及回放的过程. 先看效果如下,没有找到相关的背景图,只能以田字格当作背景. 整个过程分为两部分,一部分是写字,一部份是回放. 该过程主要使用了path和pathmeasu ...
- android 自定义中文加盘,Android自定义View仿支付宝芝麻信用分仪表盘
先看下iOS的芝麻信用分截图 这是我做的效果,还是有点差距的 支付宝9.9版本芝麻信用分的实现 首先初始化各种画笔,默认的size,padding,小圆点. (因为实在找不到原版芝麻信用的带点模糊效果 ...
最新文章
- 如何进行5万并发用户负载测试?
- 将dos格式文件转换为unix格式
- c 对一个mysql数据库进行操作_C/C++对MySQL操作
- 前端学习(3013):vue+element今日头条管理--表单验证基本使用
- CoreAnimation编程指南(简介)
- excel转html中文乱码,英文系统中Excel中文乱码问题
- 工作站的windows server 2008 终于安装好了
- python 学习笔记(6)-转载
- border-radius导致overflow:auto 或者 overflow:hidden失效,溢出问题解决方法
- VS+Qt报错无法解析的外部符号
- 海量数据处理:经典实例分析
- [python爬虫之路day4]:xpath基本知识lxml结合xpath进行数据分析爬取豆瓣电影
- C++扑克牌类的设计
- unlink快速入门
- 相对路径、绝对路径写法
- 宝塔面板服务器ip地址修改_宝塔,云帮手服务器控制面板,你用的哪一款?
- linux 基金会 认证,Linux基金会宣布新的Linux认证计划
- 大家都是在哪些网站找数据?
- 最新版SDWebImage的使用 -- 推荐 - 高效
- 机器学习入门(吴恩达)——单变量线性回归
热门文章
- Win10下OpenCV环境搭建(VS2017+OpenCV3.2.0)
- c语言下标法改为指针变量法,C语言教材第七章指针实验.doc
- 国外军旅片佳作-分享给喜欢的朋友们
- 修改科汛CMS团购功能 修改往期团购显示
- 小米10TPro参数配置
- android 高仿小米note2,小米Note再现高仿版真假难辨 山寨小米Note长什么样?
- 华为帐号,让您享受更多便捷优质服务
- 【翻译】英国HCSEC对华为产品安全方面的调查报告
- 软件管理和电脑管家打不开
- C语言进阶之路:如何去求任意两个数字的加减乘除问题