Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android SweepGradient類介紹

Android SweepGradient類介紹

編輯:關於Android編程

Android 顏色處理(八) SweepGradient 掃描/梯度渲染

為什麼什麼叫掃描渲染呢? 相信大家都看過雷達掃描的效果,尤其是在安全軟件中.

 

\

 

public SweepGradient(float cx, float cy, int[] colors, float[] positions)

Parameters:
cx 渲染中心點x 坐標 cy 渲染中心y 點坐標 colors 圍繞中心渲染的顏色數組,至少要有兩種顏色值 positions 相對位置的顏色數組,可為null, 若為null,可為null,顏色沿漸變線均勻分布

 

public SweepGradient(float cx, float cy, int color0, int color1)

Parameters:

 

cx 渲染中心點x 坐標 cy 渲染中心點y 坐標 color0 起始渲染顏色 color1 結束渲染顏色
 

 

關鍵是怎麼理解這個中心點的意思,其實就是圍繞哪個點開始漸變,下面以實例說明:

 

public class MainActivity extends Activity {
SweepGradientView mSweep;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSweep=new SweepGradientView(this, null);
setContentView(mSweep);
}
}

 

public class SweepGradientView extends View {

Paint mPaint = null;
// 梯度渲染
Shader mSweepGradient = null;

public SweepGradientView(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);

mSweepGradient = new SweepGradient(200, 300, new int[] { Color.CYAN,
Color.DKGRAY, Color.GRAY, Color.LTGRAY, Color.MAGENTA,
Color.GREEN, Color.TRANSPARENT, Color.BLUE }, null);
mPaint = new Paint();

mPaint.setShader(mSweepGradient);

canvas.drawCircle(240, 360, 200, mPaint);
}
}

我們看到這裡的中心點給的是200、300,其實就是在屏幕上以X方向為200、Y方向為300的左邊開始漸變,效果圖如下:

\

 

如果以240, 360為中心點開始漸變,這個時候的效果如下:

\

 

 

切記理解這個中心點的意思,是圍繞哪個點開始漸變

 

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved