Android平台下实现渐变效果。在android.graphics中我们可以找到有关Gradient字样的类,比如LinearGradient 线性渐变、RadialGradient径向渐变和 角度渐变SweepGradient 三种,他们的基类为android.graphics.Shader。为了显示出效果,使用一个简单的例子来说明。
一、LinearGradient线性渐变
在android平台中提供了两种重载方式来实例化该类分别为,他们的不同之处为参数中第一种方法可以用颜色数组,和位置来实现更细腻的过渡效果,比如颜色采样int[] colors数组中存放20种颜色,则渐变将会逐一处理。而第二种方法参数仅为起初颜色color0和最终颜色color1。
LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions, Shader.TileMode tile)
LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, Shader.TileMode tile)
使用实例如下:
Paint p=new Paint();
LinearGradient lg=new LinearGradient(0,0,100,100,Color.RED,Color.BLUE,Shader.TileMode.MIRROR); //参数一为渐变起初点坐标x位置,参数二为y轴位置,参数三和四分辨对应渐变终点,最后参数为平铺方式,这里设置为镜像.
刚才Android开发网已经讲到Gradient是基于Shader类,所以我们通过Paint的setShader方法来设置这个渐变,代码如下:
p.setShader(lg);
canvas.drawCicle(0,0,200,p); //参数3为画圆的半径,类型为float型。
二、 RadialGradient镜像渐变
有了上面的基础,我们一起来了解下径向渐变。和上面参数唯一不同的是,径向渐变第三个参数是半径,其他的和线性渐变相同。
RadialGradient(float x, float y, float radius, int[] colors, float[] positions, Shader.TileMode tile)
RadialGradient(float x, float y, float radius, int color0, int color1, Shader.TileMode tile)
三、 SweepGradient角度渐变
对于一些3D立体效果的渐变可以尝试用角度渐变来完成一个圆锥形,相对来说比上面更简单,前两个参数为中心点,然后通过载入的颜色来平均的渐变渲染。
SweepGradient(float cx, float cy, int[] colors, float[] positions) //对于最后一个参数SDK上的描述为May be NULL. The relative position of each corresponding color in the colors array, beginning with 0 and ending with 1.0. If the values are not monotonic, the drawing may produce unexpected results. If positions is NULL, then the colors are automatically spaced evenly.,所以Android123建议使用下面的重载方法,本方法一般为NULL即可。
SweepGradient(float cx, float cy, int color0, int color1)
或者直接创建一个drawable:
GradientDrawable grad = new GradientDrawable(Orientation.TOP_BOTTOM,
new int[] { Color.BLACK, Color.WHITE });
this.getWindow().setBackgroundDrawable(grad);
分享到:
相关推荐
android自定义ProgressView长条渐变色的进度条,实现渐变色的效果,不适用一张图片实现! 具体思路:http://blog.csdn.net/springsky_/article/details/17954765
本教程将详细讲解如何通过自定义属性来实现ImageView的透明度渐变效果。首先,我们从自定义属性的创建开始。 一、创建自定义属性 在Android项目中,自定义属性通常放在res/values/attrs.xml文件中。如果该文件不...
左图是带渐变效果,右图是不带渐变效果。原理还是绘图,Canvas可以绘制的对象有:弧线(arcs)、填充颜色(argb和color)、 Bitmap、圆(circle和oval)、点(point)、线(line)、矩形(Rect)、图片(Picture)、圆角矩形 ...
为了实现渐变效果,我们需要自定义这个组件,使其在用户滑动时能够动态变化颜色。 1. **使用自定义 Toolbar**: 首先,我们需要在XML布局文件中创建一个自定义的Toolbar,并设置背景为透明,以便我们可以自由控制...
在Android中,我们可以通过修改View或者Bitmap的Alpha值来改变其透明度,从而实现渐变效果。 1. **使用代码动态改变Alpha值** - 对于一个ImageView或其他View,你可以直接调用`setAlpha(float alpha)`方法来改变其...
总之,Android的渐变动画提供了丰富的视觉效果,通过Java代码或XML资源文件可以灵活地创建和控制这些动画,从而为用户带来更生动、更交互的体验。熟练掌握这些动画技巧,能让你的Android应用更具吸引力。
它允许我们在一个方向上定义多个颜色点,系统会自动将这些颜色平滑地过渡到一起,形成渐变效果。创建`LinearGradient`时,需要指定起始坐标、结束坐标以及颜色数组和位置数组。 ```java LinearGradient gradient = ...
在Android开发中,为了提升用户体验,常常需要实现各种动态效果,比如滑动渐变效果。这个效果常见于电商应用,如淘宝,用户在滑动页面时,顶部栏或底部栏会逐渐透明或改变颜色,营造出沉浸式的浏览体验。本项目就是...
Android中实现椭圆形的绘制很简单,只需要调用canvas.drawOval()就可以了,但是椭圆形的中心发散渐变效果Android自带的API里面却是没有的,需要自己费点功夫来实现下了。这个资源,就是我花了两三天时间实现的这个...
我们可以根据不同的状态来改变 ImageView 的颜色,从而实现渐变效果。 三、图标的绘制 在 ShadeView 中,我们使用 Bitmap 来绘制图标。我们可以通过获取图标的 Bitmap 对象,并将其绘制在 View 的 Canvas 上。同时...
之前又看到网上有朋友做过相关案例,不过是通过滚动listview来监听实现标题栏渐变,但不是我想要的效果,我要的效果是通过滚动scrollview来实现标题栏颜色渐变效果,这才是我要的效果,1个积分意思一下O(∩_∩)O哈哈...
本文将深入探讨Android中的渐变效果,包括线性渐变、径向渐变以及如何在代码中实现这些效果。 首先,我们来理解线性渐变(Linear Gradient)。线性渐变是从一个方向到另一个方向平滑地改变颜色。在Android中,我们...
实现渐变效果时要考虑Android版本的兼容性。一些高级特性可能只在较新的API级别中可用,因此需要使用条件编译或库来确保在旧版本设备上的正常运行。 综上所述,`GradualshowcolorAndResourse`项目涵盖了Android...
你可以使用Path对象来构建圆环的路径,然后使用Paint设置描边宽度、颜色、渐变效果等。为了实现自旋转,可以使用postInvalidate()方法在特定的时间间隔内反复调用,从而形成动画效果。此外,你还可以通过设置Paint的...
本文将详细介绍如何在Android中实现渐变背景颜色,包括其基本原理、XML配置方法以及在布局中的具体应用。 ### 基本原理 渐变背景主要通过`<gradient>`标签在XML资源文件中定义,该标签位于`<shape>`标签内部,属于...
例如,可以使用Math.random()函数生成烟花发射的角度、速度和颜色,通过贝塞尔曲线来控制烟花的轨迹,用HSV色彩空间实现颜色的渐变效果。 为了提高性能,我们还需要考虑优化策略。因为大量的烟花动画可能会导致性能...
通过上面的代码,我们可以看到,实现颜色渐变滚动效果需要继承 Textview 控件,重写 onSizeChanged() 和 onDraw() 方法,并使用 LinearGradient 对象和 Matrix 对象来实现渐变效果。这个效果可以应用于各种场景,...
本文将深入探讨如何使用`Paint`类实现渐变色效果,特别是在自定义`View`中的应用。 渐变色在UI设计中广泛使用,可以为界面增添动态感和视觉吸引力。在Android中,`Paint`类提供了多种渐变色的实现方式,包括线性...
"Android编程实现带渐变效果的圆角矩形示例" 在Android编程中,实现带渐变效果的圆角矩形是一种常见的界面布局技巧。本文将详细介绍如何使用Android编程实现带渐变效果的圆角矩形,并对其涉及的Android界面布局及...
在Android开发中,颜色渐变是一种常见的视觉效果,可以用于背景、按钮、进度条等多种界面元素,提升用户体验。本文将详细介绍如何在Android中实现颜色渐变,并通过一个名为"MyDemo"的实例进行演示。 首先,我们需要...