Android 颜色处理(三) 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;@Overrideprotected 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);}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);//设置渲染器paint.setShader(linearGradient);                  //绘制圆环canvas.drawCircle(240, 360, 200, paint); }}





更多相关文章

  1. Android实现体重测量仪的源码
  2. Android中GPS/Map的运用
  3. Android获取View位置
  4. Android(安卓)OnGestureListener
  5. Android中GPS/Map的运用
  6. android加载本地图片
  7. 2011.07.20——— android 获得当前view在屏幕的坐标
  8. Android:res之shape制作圆角、虚线、渐变
  9. Android(安卓)之shape

随机推荐

  1. Android之加载圈
  2. Android新建工程步骤(AndroidStudio)
  3. Android碎片化问题 java.lang.NoClassDef
  4. Android ContentProvider(内容提供者)的
  5. Android面试题总结(一)
  6. android studio 怎么取消默认AppcompatAc
  7. android SDK 快速更新配置
  8. 再说Android中实现全屏的方法
  9. Android(安卓)OpenGL ES 开发教程 从入门
  10. (Android)用Socket的小例子