1
我正在創建自己的視圖。現在我想要做的就是用顏色漸變繪製圓角矩形。自定義Android視圖中未顯示漸變
這裏是我創建的梯度:
public void changePressedColor(int[] colors){
if (colors != null){
if (colors.length == 2){
pressedcolors = colors;
whenpressed = new LinearGradient(0,0,getWidth(),getHeight(),pressedcolors[0],pressedcolors[1], Shader.TileMode.MIRROR);
}
}
}
Wherre按顏色從參數傳遞:
int[] pc = new int[2];
pc[0] = Color.rgb(0,0,50);
pc[1] = Color.rgb(114,112,255);
後來,當我畫我這樣做:
protected void onDraw(Canvas canvas){
painter.setShader(whenpressed);
painter.setStyle(Paint.Style.FILL);
canvas.drawRoundRect(rect,rx,ry,painter);
painter.setShader(null);
painter.setStyle(Paint.Style.STROKE);
painter.setColor(textColor);
canvas.drawText(text,cx,cy+offsety,painter);
}
問題是沒有漸變出現。相反,有一個純色等於梯度的第一個顏色。視圖的高度,矩形和漸變是相同的。
任何想法我做錯了什麼。
感謝您的任何幫助。
不錯的嘗試!但是,不幸的是沒有。它的值是48,與按鈕高度相同。 – aarelovich
你在'changePressedColor'中檢查它是否正確,而不是'onDraw'? – weston
哇!你是對的!!!這是問題所在,我從內部變量中獲得了高度,並且工作正常。我只是沒有看到它,因爲我有其他代碼問題。謝謝! – aarelovich