2
私は、ボタンとImの塗りつぶしボタンの色をonDrawとCanvasを使ってカスタマイズしました。 ボタンパラメータ(左、上、右、下)が(0,0,200,200)の場合は、 (20,20,180,180)私はグラデーションカラーと一部 この部分は透明と他たい...RectF Androidの交差点で透明に塗りつぶす
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
int[] iColor = {
CommonFunctions
.getLightColor(bAppointments.getSrtStatus(), 255),
CommonFunctions.getColor(bAppointments.getSrtStatus(), 255) };
int[] gapColor = { Color.argb(255, 255, 255, 255),
Color.argb(255, 255, 255, 255) };
float[] iPos = {
0,
(canvas.getClipBounds().bottom - canvas.getClipBounds().top)/2 };
LinearGradient lGradient = new LinearGradient(
canvas.getClipBounds().right - canvas.getClipBounds().left,
canvas.getClipBounds().top, canvas.getClipBounds().right
- canvas.getClipBounds().left,
canvas.getClipBounds().bottom, iColor, iPos,
Shader.TileMode.CLAMP);
mPaint.setAlpha(0xBB);
mPaint.setShader(lGradient);
mPaint.setStyle(Style.FILL);
mRectF.set(canvas.getClipBounds().left + 2,
canvas.getClipBounds().top + 2,
canvas.getClipBounds().right - 2,
canvas.getClipBounds().bottom - 6);
canvas.drawRoundRect(mRectF, rectCurve, rectCurve, mPaint);
}
現在、私のレイアウトは
のように見て私は最初のボタンに透明満たさ now..Iため
何が問題なのですか?より良い方法は、XMLでそれを行うことです..実行時に行うことは簡単ではありません.. – ngesh
@sandy http://i.stack.imgur.com/sItBz.pngこれで..私は白い部分をしたいボタンのColorの代わりにrelativeLayout Colorを表示する必要があることを透明にします。n色のグラデーションはLogicの静的ではないため、ランタイムを実行する必要があります。 –