Android 颜色处理(五) LinearGradient线性渲染
相信很多人都看过歌词同步的效果, 一是竖直方向的滚动,另一方面是水平方面的歌词颜色渐变点亮效果,这种效果怎么做呢? 这就需要用到LinearGradient线性渲染,下面还是先看具体的使用:
LinearGradient有两个构造函数;
public LinearGradient(float x0, float y0, float x1, float y1, int[] colors, float[] positions,Shader.TileMode tile)
参数:
float x0: 渐变起始点x坐标
float y0:渐变起始点y坐标
float x1:渐变结束点x坐标
float y1:渐变结束点y坐标
int[] colors:颜色 的int 数组
float[] positions: 相对位置的颜色数组,可为null, 若为null,可为null,颜色沿渐变线均匀分布
Shader.TileMode tile: 渲染器平铺模式
public LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1,Shader.TileMode tile)
float x0: 渐变起始点x坐标
float y0:渐变起始点y坐标
float x1:渐变结束点x坐标
float y1:渐变结束点y坐标
int color0: 起始渐变色
int color1: 结束渐变色
Shader.TileMode tile: 渲染器平铺模式
效果图:
然后看一下具体怎么实现这种效果;
MainActivity:
package com.tony.shader;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
private LinearGradientView linearGradientView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
linearGradientView = new LinearGradientView(this);
setContentView(linearGradientView);
}
}
LinearGradientView;
package com.tony.shader;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.graphics.Shader;
import android.view.View;
public class LinearGradientView extends View {
private LinearGradient linearGradient = null;
private Paint paint = null;
public LinearGradientView(Context context)
{
super(context);
linearGradient = new LinearGradient(0, 0, 100, 100, new int[] {
Color.YELLOW, Color.GREEN, Color.TRANSPARENT, Color.WHITE }, null,
Shader.TileMode.REPEAT);
paint = new Paint();
}
public LinearGradientView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
//设置渲染器
paint.setShader(linearGradient);
//绘制圆环
canvas.drawCircle(240, 360, 200, paint);
}
}
分享到:
相关推荐
【Android UI】Paint Gradient 渐变渲染 ① ( LinearGradient 线性渐变渲染 | 设置渲染方向 | 设置渲染颜色 | 设置渲染模式 | MIRROR ) https://blog.csdn.net/shulianghan/article/details/125047457 博客配套源码 ...
LinearGradient实现TextView字体渐变的效果
LinearGradient线性渲染 文章解析:http://blog.csdn.net/yegucheng2618/article/details/37907149
Android 圆形颜色渐变进度条 自定义控件 博客地址见: http://blog.csdn.net/wangchunlei123/article/details/50478913
Delegate implementing the native methods of android.graphics.LinearGradient.
android实现TextView文字部分渐变色;LinearGradientFontSpan SpannableString
LinearGradient 线性渲染 RadialGradient 环形渲染 SweepGradient 梯度渲染(扫描渲染) ComposeShader 组合渲染 paint.setShader(bitmapShader); 效果展示,设置画笔渲染,画笔在图层上渲染,图片未摆满控件...
博客《自定义控件三部曲之绘图篇(十九)——LinearGradient与闪动文字效果》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/52350154
LinearGradient: 线性渲染 SweepGradient: 梯度渲染 RadialGradient: 光束渲染 ComposeShader: 组合渲染 渲染模式:Shader.TileMode Shader.TileMode.CLAMP: 边缘拉伸模式,它会拉伸边缘的一个像素来填充其他...
android渲染器学习,练习bitmapShader,LinearGradient,等5中渲染器的使用
LinearGradient也称作线性渲染,LinearGradient的作用是实现某一区域内颜色的线性渐变效果,看源码你就知道他是shader的子类。 它有两个构造函数 public LinearGradient(float x0, float y0, float x1, float y1, ...
GradientTextView是一个文字颜色逐步改变的自定义view,目前只有两种颜色。 如何使用 GradientTextView Step 1. Add it in your root build.gradle at the end of repositories: allprojects { repositories { ...
LinearGradient 组件 react-native-linear-gradient ,react-native-linear-gradient 是一个 React Native 的 Li...
前阵子在github上看到一个很不错的动画效果,叫做ShimmerLayout,是一个...1) 首先我们需要绘制出最上层的微光,这里通过LinearGradient线性渐变渲染器来绘制微光渐变效果,为了使得渐变自然,我们看到,代码里在前
Android Graphics Demo ...LinearGradient BitmapShader ColorMatrixColorFilter LightingColorFilter PorterDuffXfermode EmbossMaskFilter BlurMaskFilter ScriptIntrinsicBlur ScriptIntrinsicConvolve3x3
LinearGradient线性渐变: package com.zhoujian.retrofit.paintview; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.LinearGradient...
Paint的使用,Shader渲染器的使用,比如LinearGradient、RadialGradient、BitmapShader、SweepGradient
下面一段代码给大家分享Android 自定义TextView实现滑动解锁高亮文字效果,具体代码... // 线性渲染 private LinearGradient mLinearGradient; // 存储变换的matrix private Matrix matrix; // 移动距离 private
import android.graphics.LinearGradient; import android.graphics.Paint; import android.graphics.RectF; import android.graphics.Shader; import android.util.AttributeSet; import android.util.Log;
看起来很炫酷,其实实现原理相当简单,我们只需要写自定义控件继承TextView,然后使用渲染器Gradient设置颜色渐变和Paint的setShadowLayer方法设置阴影,然后不断刷新改变位移即可。 实现 首先写一个...