为了账号安全,请及时绑定邮箱和手机立即绑定
  • !!!!
    查看全部
  • ***用于缩放
    查看全部
  • ***这个一般用于绘制进度条,比如说手机上的电量进度条。 ***maxLevel表示显示等级,默认显示第一个
    查看全部
  • !!!对比前一张
    查看全部
  • ***在layer-list中可以放一些item ***因为在layer-list中,是从上面的item开始绘制的,所以最後那个item定义的颜色就覆盖在了最外面那一层
    查看全部
  • !!!
    查看全部
  • !!!
    查看全部
  • !!!
    查看全部
  • ***可绘制的资源:可能是一个颜色,也可能是一个Bitmap图片,也可以是一个线条,或者是一个路径 ***方框中是Drawable一些基本的类
    查看全部
  • !!!
    查看全部
  • !!!
    查看全部
  • 涟漪效果的实现方式
    查看全部
  • 3.添加动态更新 (1)如果控件直接设置背景setBackgroundDrawable() 回调事件中调用drawable的touch处理 public void onTouch(MotionEvent event) { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: mCenterX = event.getX(); mCenterY = event.getY(); mRadius = mRadius + 40; invalidateSelf(); break; } } (2)如果不使用设置背景drawable,会比较麻烦 首先看 public void invalidateSelf() { final Callback callback = getCallback(); if (callback != null) { callback.invalidateDrawable(this); } } 这就要设置一个callback:mRippleDrawable.setCallback(this); 然后看 callback.invalidateDrawable(),里面的verifyDrawable()和边界 重写下面两个接口 boolean verifyDrawable(Drawable who) { return who == mDrawable || super.verifyDrawable(who); } void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); mDrawable.setBounds(0, 0, getWidth(), getHeight()); } 最后别忘了要设置ontouch监听
    查看全部
  • 一、在view中实现一个简单的Drawable 1.先创建一个自定义的drawable,在draw(canvas)中写一些定制化的东西 (1)在控件中调用setBackgroundDrawable(drawable) (2)在控件中重写onDraw(canvas),调用drawable的draw() 但注意调用位置,最后调用的draw()会出现在最前面。 以上两种方式均可 二、完善Drawable的基本参数 1.需要做如下三步: (1)弄清楚Drawable中实现的方法 (2)添加一些涟漪效果所需的元素到Drawable (3)动态更新Drawable 2.弄清楚接口 (1)最重要的一个draw()方法,这个用来绘图的 可以借助一个画笔,绘制想要的任何东西 (2)setAlpha()设置透明度 注意因为这里是用了画笔Paint,所以当透明度变化时要为paint重新设置透明度 if (mAlpha != 255) { int alpha = mPaint.getAlpha(); int realAlpha = (int) (alpha * (mAlpha / 255f)); mPaint.setAlpha(realAlpha); } (3)setColorFilter()滤镜,主要对图片而言 (4)getOpacity()得到透明度属性 这里就是拿到画笔paint的透明度属性,PixelFormat.OPAQUE,PixelFormat.TRANSPARENT,PixelFormat.TRANSLUCENT 2.添加涟漪效果 so easy,直接用画笔画一个圆就行了 public void draw(Canvas canvas) { canvas.drawCircle(mCenterX, mCenterY, mRadius, mPaint); } 3.添加动态更新 思路是按钮按下时圆的半径变大,并且重新绘制圆。 这步操作需要借助drawable的invalidateSelf() (1)如果控件直接设置背景setBackgroundDrawable(),直接设置一个ontouch事件就行了 回调事件中调用drawable的touch处理
    查看全部
  • Drawable介绍 1.A Drawable is a general abstraction for "something that can be drawn." Most often you will deal with Drawable as the type of resource retrieved for drawing things to the screen; the Drawable class provides a generic API for dealing with an underlying visual resource that may take a variety of forms. Unlike a View, a Drawable does not have any facility to receive events or otherwise interact with the user. 最后一句是重点 2.重点 (1)layer-list是从上往下绘制,所以最下面的item会覆盖前面的 item中可以写shape等其他的类型 (2)level-list类似于layer-list,也有很多item。level-list可以最多指定10个等级,默认显示level1,通过代码设置显示哪个level 像电量的显示一样,level1显示最高电量,依次递减,当电量变化时通过代码显示不同level
    查看全部

举报

0/150
提交
取消
课程须知
本课程为涟漪效果基础篇,针对初次学习涟漪效果的同学;在课程中详细的讲解了相关的知识点。当然基础并不代表没有难点,其中颜色叠加的计算以及Drawable与View的交互等相关知识点尤为重要;并要求学习者能深入理解Drawable与View的相关API的作用。
老师告诉你能学到什么?
1.涟漪效果实现的几种方式 2.View与Drawable相关API知识点 3.在Drawable中如何实现动画效果 4.颜色叠加的计算方法

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!