二、RippleDrawable基本概念介绍 (1)、RippleDrawable RippleDrawable可以实现上面效果图中的水波纹效果,它是在API 21 中添加的,所以,低于21的版本中不可使用 rippleDrawable = (RippleDrawable) mBinding.tvRippleBg1.getBackground(); mBinding.tvRippleBg1 rippleDrawable = new RippleDrawable(colorStateList, null, null); mBinding.tvRippleBg2.setBackground 的范围 RippleDrawable rippleDrawable = new RippleDrawable(colorStateList, contentDrawable, maskDrawable 文中内容对应其中的:b35rippleDrawable 文件夹
水波图形RippleDrawable RippleDrawable是Android在5.0之后新增的图形类,它的作用是在点击时展示水波动画,从而提示用户在这里按压了屏幕。 这个提示效果类似于状态图形StateListDrawable,区别在于,StateListDrawable使用一张静止图片表示按下状态,而RippleDrawable使用荡起涟漪的水波动画表示按压动作。 水波动画RippleView RippleDrawable只支持Android5.0以后的系统,如果想在4.*系统上也能展示水波动画效果,就得自己编写水波动画的控件了。 但在具体编码的时候,尚有几个功能需要特别注意: 1、水波图案不能被子控件遮挡,所以不能在onDraw方法中绘制水波,只能在dispatchDraw方法中绘制; 2、与RippleDrawable一样
原理 设置了attr/selectableItemBackground,其实是给View设置了一个RippleDrawable的背景。 自定义RippleDrawable 和其他很多Drawable一样,RippleDrawable也是可以通过写xml的形式来定义的,下面创建一个drawable xml文件,其定义如下: <ripple
下面是新增控件的索引表格: 兼容包 名称 控件 引入版本 内核 水波图形 RippleDrawable Android 5.0 矢量图形 VectorDrawable Android 5.0 矢量动画 比如水波图形RippleDrawable和矢量图形VectorDrawable,这两个控件在Android5.0之后的系统内核中提供,所以只有系统版本不低于5.0的手机才能使用它们,运行4.
Android5.0 Material Design设计的动画效果 RippleDrawable涟漪效果 涟漪效果是Android5.0以后的新特性。 为了兼容性,建议新建drawable-v21文件夹来存放RippleDrawable,drawable文件夹下也要放相应的适配图片。
drawable : stateListDrawable); RippleDrawable rippleDrawable = new RippleDrawable(ColorStateList.valueOf contentDrawable, contentDrawable); view.setClickable(true); view.setBackground(rippleDrawable
33:51.569 26919-26959/example.com.closeapp D/OpenGLRenderer: endAllStagingAnimators on 0x55850598b0 (RippleDrawable
Bitmap.java:946) android.graphics.Bitmap.createBitmap (Bitmap.java:913) android.graphics.drawable.RippleDrawable.updateMaskShaderIfNeeded (RippleDrawable.java:776) android.graphics.drawable.RippleDrawable.drawBackgroundAndRipples (RippleDrawable.java :860) android.graphics.drawable.RippleDrawable.draw (RippleDrawable.java:700) android.view.View.getDrawableRenderNode
生成系统提供的GradientDrawable、RippleDrawable、StateListDrawable即可。
兼容5.0的水波动画 Android5.0之后新加了水波动画RippleDrawable,现在想在4.X系列的手机上使用水波效果,就要自定义水波控件了。
= new TransitionDrawable(); } else if (name.equals("ripple")) { drawable = new RippleDrawable
矢量图形VectorDrawable 与水波图形RippleDrawable一样,矢量图形VectorDrawable也是Android5.0之后新增的图形类。
使用变换图形 缩放图形 ScaleDrawable Android开发笔记(一百二十九)使用变换图形 旋转图形 RotateDrawable Android开发笔记(一百二十九)使用变换图形 水波图形 RippleDrawable