我想創建一個CircleView,梯度從底部 - >左側 - >頂部 - >右側。
所以我用帆布SweepGradient
這樣SweepGradient更改開始和結束顏色的位置
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
int[] colors = {Color.GREEN, Color.RED};
float[] positions = {0, 1};
SweepGradient gradient = new SweepGradient(100, 100, colors, positions);
paint.setShader(gradient);
canvas.drawCircle(100, 100, 100, paint);
}
但這個默認順序是右鍵 - >下 - >左轉 - >頂但我想底部 - >左轉 - >頂 - >右鍵 我曾嘗試改變位置以
float[] positions = {0.25f, 1.25f};
,但它只是在AndroidStudio的Preview
的作品,當我在真實的設備上運行時,它顯示的結果一樣positions = {0, 1}
我怎樣才能讓SweepGradient
梯度bottom -> left -> top -> right
這樣
- - 更新--- 我們可以使用setLocalMatrix
爲SweepGradient
像這樣旋轉漸變
Matrix matrix = new Matrix();
matrix.setRotate(90, 100, 100);
gradient.setLocalMatrix(matrix);
使用'着色#setLocalMatrix(矩陣localM)' – pskink
@pskink遺憾的是,僅'setLocalMatrix'工作完美的預覽模式,在我的真實設備API 19它不會工作 –
發佈您的代碼然後 – pskink