一个渐变色曲线图的出道之路
虽然我只是一个小小的控件,但是我想出道,我要走花路。
下方这张图是我理想中的样子。底部显示着日期。虽然我只有七天的记忆,但是每天的分钟数我都铭记于心,丝毫不差。而且我能与时俱进,迎新纳福的同时去除糟粕旧俗。我还有一条准绳,标着20min,用来衡量我的分钟数。它是及格线,线上万事大吉,线下备受鄙夷。它是晴雨线,线上阳光普照,线下阴雨连绵。它是命运线,线上得上帝恩宠,线下遭恶鬼唾弃。
温柔可爱完美容颜,严谨细致气质立现李白说得好,活在当下。今天的我跟以前的我都不一样,所以今天的分钟数也必须特别出众。用高贵优雅的紫色来点缀,并配上独一份的文字标注。享受着鹤立鸡群的非凡待遇。
看看这优雅的曲线,看看这活泼的渐变色,包含了启蒙恩师贝塞尔(Bezier)对我的型体的殷切期望,包含了专业老师格雷迪恩特(Gradient)对我的外貌的高度期待。
原来的我是一张白纸,什么都没有,什么都不懂。但是后来一个普普通通的念头点亮了我,让我看到了我的前途。那一刻我明白了我存在的意义。我将勇往直前并所向披靡。
我为此做了最充足的准备,我准备了画笔Paint、路径Path、方框Rect、RectF这些东西来塑造我的形体、描摹我的面貌。我起草了许多配色方案,在不断尝试中找寻最适合的组合。我还找来了我最好的朋友ValueAnimator来教我跳舞,他让我动起来,增加我的青春活力。
出道不容易,关键在地基。第一步:初始化画笔Paint、文字画笔TextPaint、渐变色阴影LinearGradient、算字长的方框Rect、路径Path、今日数据的紫色圆点位图Bitmap、最近7天的数据集合List以及底部两个圆润的转角用到的方框RectF。
宏伟蓝图从此开始,砍柴磨刀徐徐图之画妆画得好不好,全看手底下的真功夫。第二步:onDraw中画路径。准备好的Path可以用上了。首先在onDraw中将path.reset(),这一步必不可少,每时每刻都需要以平常心来面对,适时放空自己可以摆脱过去的消极影响。从左下角圆角上方的位置开始画轮廓,以其为原点,向上的方向为Y轴正向,向右的方向为X轴正向。这样一来,日期都显示在X轴下方,并且时间顺着X轴正向越来越接近今天,符合人们的期待。
然后针对集合中是否有数据分成了两种情况:第一种情况是有数据,不管它有几天的数据,从左边到第一天的分钟数,必须是水平过渡过来。虽然上图中理想中的我的边线附近仍然是保持着贝塞尔曲线状态,但是那样的我失去了对于第一天之前的分钟数的客观性。所以我将维持第一天的分钟数,一分不多,一分不减。最后一天同理。第二种情况是没有数据,那么就只能画出个X轴以下的部分路径了,日期和曲线是巧妇难为无米之炊了。
没有数据不用发怵,随机应变这招最酷路径经过画笔带上渐变色阴影这么一画,整体的轮廓已然成形。底子好了之后,再来画妆那就是淡妆浓抹总相宜了。接下来画心中的准绳。准绳需要根据七日数据的最大值来确定Y轴坐标。这个最大值需要处理一下,保证它不小于40,这样一来准绳就能处在Y轴正方向上的一半高的位置,比较合适。就像我要摆正自己的位置,不能好高骛远,心比天高,而要姿态放低,低调做人。
要想目标实现得好,心中准绳不可缺少接下来展现今天的分钟数,突出今天的我是不一样的我。我租了一顶紫色的帽子,牌子是Bitmap,所以在使用完之后还得及时还回去(记得调用bitmap.recycle()释放资源)。
紫色帽子头上一戴,我是今天最靓的仔化妆完毕,好友ValueAnimator朝我使眼色,他教了我一套舞步,积极向上,青春无敌。
果断开启控场模式,潇洒是我专属用词最后是不断学习,充实自己。有内容的自己才不会显得肤浅和单薄。
面包通过受热膨胀,我靠学习充实成长我是一个控件,我形体完美,随机应变能力出众,舞蹈才艺满分,学习能力极强。虽然我是一个小小的控件,但是我要出道。我要走花路,谁都挡不住!