Android 颜色渲染(六) RadialGradient 环形渲染

目录(?)[+]

Android 颜色处理(六) RadialGradient 环形渲染

public RadialGradient(float x, float y, float radius, int[] colors, float[] positions,Shader.TileMode tile)

float x:  圆心X坐标

float y:  圆心Y坐标

float radius: 半径

int[] colors:  渲染颜色数组

floate[] positions: 相对位置数组,可为null,  若为null,可为null,颜色沿渐变线均匀分布

Shader.TileMode tile:渲染器平铺模式

public RadialGradient(float x, float y, float radius, int color0, int color1,Shader.TileMode tile)

float x:  圆心X坐标

float y:  圆心Y坐标

float radius: 半径

int color0: 圆心颜色

int color1: 圆边缘颜色

Shader.TileMode tile:渲染器平铺模式

效果图;

                                                

代码:

MainActivity:

  1. package com.tony.shader;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5.   
  6. public class MainActivity extends Activity {  
  7.   
  8.     private RadialGradientView radialGradientView;  
  9.       
  10.     @Override  
  11.     protected void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.           
  14.         radialGradientView = new RadialGradientView(this);  
  15.         setContentView(radialGradientView);  
  16.     }  
  17.   
  18. }  


RadialGradientView:

    1. package com.tony.shader;  
    2.   
    3. import android.content.Context;  
    4. import android.graphics.Canvas;  
    5. import android.graphics.Color;  
    6. import android.graphics.Paint;  
    7. import android.graphics.RadialGradient;  
    8. import android.graphics.Shader;  
    9. import android.util.AttributeSet;  
    10. import android.view.View;  
    11.   
    12. public class RadialGradientView extends View {  
    13.   
    14.     Paint mPaint = null;  
    15.     // 环形渐变渲染  
    16.     Shader mRadialGradient = null;  
    17.     public RadialGradientView(Context context) {  
    18.         super(context);  
    19.         //1.圆心X坐标2.Y坐标3.半径 4.颜色数组 5.相对位置数组,可为null 6.渲染器平铺模式   
    20.         mRadialGradient = new RadialGradient(240, 240, 240, new int[] {    
    21.                 Color.YELLOW, Color.GREEN, Color.TRANSPARENT, Color.RED }, null,    
    22.                 Shader.TileMode.REPEAT);    
    23.     
    24.         mPaint = new Paint();    
    25.     }  
    26.       
    27.       
    28.     public RadialGradientView(Context context, AttributeSet attrs) {  
    29.         super(context, attrs);  
    30.     }  
    31.       
    32.      @Override    
    33.         protected void onDraw(Canvas canvas) {    
    34.             // 绘制环形渐变    
    35.             mPaint.setShader(mRadialGradient);    
    36.             // 第一个,第二个参数表示圆心坐标    
    37.             // 第三个参数表示半径    
    38.             canvas.drawCircle(240, 360, 200, mPaint);    
    39.         }    
    40.         
    41.       
    42.       
    43.   
原文地址:https://www.cnblogs.com/Free-Thinker/p/5571858.html