一个项目玩转 Android 自定义 Drawable。_android studio自定义drownable-程序员宅基地

技术标签: Android 不错文章转载  

DreamDrawable

项目地址:yanbober/DreamDrawable 

简介: 一个项目玩转 Android 自定义 Drawable。

更多:作者   提 Bug   

标签:

 

一个项目玩转 Android 自定义 Drawable,具体原理参见《Android 应用层开发 Drawable 的一些叨叨絮》,效果如下图所示。

说明文档

当前实现了多个 Customer Drawable,依据自己情况使用其一即可,互相无任何依赖。

类型 定义 说明
RoundDrawable RoundDrawable 圆角 Drawable,可实现类似上图中第一行各种效果。
方法 RoundDrawable(Bitmap bitmap) 构造方法直接传递一个 Bitmap 即可,然后使用即可,譬如 ImageView.setImageDrawable(drawable);
ReflectionDrawable ReflectionDrawable 底部具备倒影效果的 Drawable,可以实现类似上图中第二行各种效果等。
方法 ReflectionDrawable(Bitmap bitmap) 构造方法直接传递一个 Bitmap 即可,然后使用即可,譬如 ImageView.setImageDrawable(drawable);
方法 setReflectionHeight(@IntRange(from = 0) int height) 给 ReflectionDrawable 设置底部反转倒影的高度。
LauncherIconDrawable LauncherIconDrawable 具备进度刷新效果的 Drawable,譬如 miui 桌面 app 更新图标进度,类似上图第三行等效果,还可配置。譬如 ImageView.setImageDrawable(drawable);
方法 LauncherIconDrawable(Drawable drawable) 构造方法传递一个 Drawable,譬如传递 ImageView.getDrawable();
方法 setDefaultColor(@ColorInt int defaultColor) 设置 LauncherIconDrawable 中图片默认的覆盖颜色,模式为 PorterDuff.Mode.MULTIPLY。
方法 setDefaultColor(@ColorInt int defaultColor, PorterDuff.Mode mode) 同上,设置 LauncherIconDrawable 中图片默认的覆盖颜色。
方法 setPercentColor(@ColorInt int percentColor) 设置 LauncherIconDrawable 中进度的覆盖颜色,模式为 PorterDuff.Mode.MULTIPLY。
方法 setPercentColor(@ColorInt int percentColor, PorterDuff.Mode mode) 同上,设置 LauncherIconDrawable 中进度的覆盖颜色。
方法 setCurPercent(@FloatRange(from = 0f, to = 1f) float curPercent) 设置当前进度为多少,类似 miui App 更新桌面图标进度更新。
IconView IconView 类似 Flyme 6.0 联系人 Icon 的 Drawable 的 View,可以实现类似上图中最后一行的各种效果,配合下面的 IconDrawable 使用。
方法 IconDrawable getIconDrawable() 获取 IconView 中的 IconDrawable 来使用。
IconDrawable IconDrawable 配合上面 IconView 内部使用的,不用自己 new,只用通过 IconView 的 IconDrawable getIconDrawable() 获取来操作。
方法 setTextLabel(String str) 设置文字,譬如联系人姓或者首字母等。
方法 setTextFontSize(int size) 设置文字大小,不设置默认会自适应。
方法 setTextColor(int color) 设置文字颜色。
方法 setBackgroundColor(int color) 设置为文字时的背景颜色。
方法 setIconLabel(Bitmap bitmap) 设置为联系人默认或者真是头像。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014608640/article/details/100738240

智能推荐

【20届考研终章--落幕】北京邮电大学软件学院--学硕_北邮歧视三战吗-程序员宅基地

文章浏览阅读2.3k次,点赞13次,收藏26次。PART 1: 写在前面的话考完研之后,世界又变的不是那么繁忙了,感觉生活不再充满着火药味,紧张的气息已经伴随了我半年的时间,尤其是每个关键的时间节点:初试之前一星期,几乎每天晚上睡觉做梦都是在考研,大部分都是梦到自己没考上;公布初试成绩前两三天,几乎每天晚上做梦都是初试成绩不理想,连复试线都没过;复试名单出来的前两三天,也是做梦,梦到自己没进复试,大家都很牛,导致我被刷掉了;笔试头天晚上,梦到自己准备不充分,题目都不会做;面试是比较紧张的,几乎每天都在做梦,梦见自己在面试,但是醒来后却又._北邮歧视三战吗

Android图片编辑器实践指南-1.简介和环境搭建_android图形编辑器实现过程-程序员宅基地

文章浏览阅读2.2k次。本文出自博客Scott_S 程序员宅基地,如需转载请标明出处,尊重原创谢谢博客地址:https://blog.csdn.net/u010308400/article/details/835888941.1功能简介本系列文章是阐述如何开发出一个Android图片编辑器,并在开发过程中阐述图像处理相关的一系列知识。整个app的大致功能包含如下:**选择图片、预览图片、图片编辑-增强、图片编辑-..._android图形编辑器实现过程

java string转string_java中如何将字符型转换字符串-程序员宅基地

文章浏览阅读1.4k次。展开全部java中有很多方法可以将62616964757a686964616fe59b9ee7ad9431333365653934字符型转化为字符串。这是代码package com.test;public class Test {public static void main(String[] args)throws Exception{char a = 'a';String str1 = a +..._java怎么把字符串转为为string

Spring框架学习重点概要笔记(一)_spring 框架学些-程序员宅基地

文章浏览阅读1.5w次,点赞3次,收藏34次。spring框架的注解实现: (1)首先在spring的核心配置文件中开启注解配置: (2)@Component(): 目前Spring中提供了四个注解,相当于时Component注解的一个衍生: @Controller WEB层 @Service 业务层 @Re..._spring 框架学些

JDK8 新特性-Map对key和value分别排序实现_java comparingbykey-程序员宅基地

文章浏览阅读1.3w次,点赞7次,收藏21次。在Java 8 中使用Stream 例子对一个 Map 进行按照keys或者values排序.1. 快速入门 在java 8中按照此步骤对map进行排序.将 Map 转换为 Stream 对其进行排序 Collect and return a new LinkedHashMap (保持顺序)Map result = map.entrySet().stream() .sort..._java comparingbykey

随便推点

scala写算法-List、Stream、以及剑指Offer里部分题目基于scala解法-程序员宅基地

文章浏览阅读184次。Stream(immutable)Stream是惰性列表。实现细节涉及到lazy懒惰求值、传名参数等等技术(具体细节详见维基百科-求值策略)。Stream和List是scala中严格求值和非严格求值两个代表性不可变函数式数据结构。考虑字符串拼接的表达式"foo"+"bar"的到"foobar",空串""就是这个操作的单位元(identity,数学中又称幺元),也就是说s+""或者""+s的值..._list的stream方法 scala

TableWidget 简单使用-程序员宅基地

文章浏览阅读1.1k次。//设置表格2列12行tableWidget->setColumnCount(2);tableWidget->setRowCount(12);//隐藏列表头tableWidget->verticalHeader()->setVisible(false); //隐藏行表头tableWidget->horizontalHeader()->setVisib..._tablewidget

微信小程序:wx.request()请求后台接收不到参数_微信小程后台接收不到-程序员宅基地

文章浏览阅读1.2w次,点赞8次,收藏14次。微信小程序调用wx.request()发送POST请求时,后台无法接收到请求的参数。解决方案一:最简单的是修改wx.request()的请求头中的content-type:wx.request({ url: url, method: 'POST', data:{你的数据}, header: { 'content-type': 'application/x..._微信小程后台接收不到

(可能是)完美解决WSL2重启变IP问题_wsl linux 固定ip-程序员宅基地

文章浏览阅读1.6w次,点赞3次,收藏28次。** WSL2的升级对比WSL1 IO升级是巨大的,以及完整的Linux内核, 等等都是完美的Linux发行版___Windows10**解决方法有几步一步一步解决编辑bat脚本此方法在 [microsoft/WSL/issues/418][1] 获得,开机启动为WSL2新增加一个IP,为本地"vEthernet (WSL)"设置IP,编辑好脚本之后,右键添加快捷方式,将快捷方式放到C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Pr_wsl linux 固定ip

iPhonexr安兔兔html5测试,iPhone XR安兔兔跑分曝光:与iPhone8Plus性能相差多少-程序员宅基地

文章浏览阅读607次。原标题:iPhone XR安兔兔跑分曝光:与iPhone8Plus性能相差多少 苹果在9 月发表三款iPhone 新机,包括已上市的iPhone XS、iPhone XS Max,以及将在10/26登台开卖的「亲民版」iPhone XR。这三款2018最新的iPhone 手机,都搭载强大效能采7 奈米制程的A12 Bionic 处理器,并具备AI智能深度学习技术。预计下周上市开卖的iPhone X...

Cortex-M3/M4与Cortex-M0/M0+架构IAP过程区别_cotex-m4 iap-程序员宅基地

文章浏览阅读1.2k次。Cortex-M3/M4与M0架构IAP过程简单总结Cortex-M3/M4架构下的IAP Cortex-M0架构下的IAP Cortex-M0+架构区别 这个文章比较不错,因此特意转载:https://blog.csdn.net/hackercircle/article/details/91127598,很多细节可以到库函数中去验证,这样会更加深刻。同时看看权威指南,内核的东西还是arm的文档比较权威,当然芯片商家也会有部分的内核说明,因此,相互结合起来就比较好了。本文主要侧重Corte_cotex-m4 iap