0

を拡張するクラスがありますView。グラデーションを として設定したいbackground color

    @Override
    public void onDraw(Canvas canvas)
    {

        GradientDrawable gradient1 = new GradientDrawable(Orientation.BOTTOM_TOP, new int[]  
                {Color.parseColor("#B1FCA9"),Color.parseColor("#29C413")});
        gradient1.setShape(GradientDrawable.RECTANGLE);
        gradient1.setCornerRadius(10.f);


        GradientDrawable gradient2 = new GradientDrawable(Orientation.BOTTOM_TOP, new int[]  
                {Color.parseColor("#29C413"),Color.parseColor("#B1FCA9")});
        gradient2.setShape(GradientDrawable.RECTANGLE);
        gradient2.setCornerRadius(10.f);


        if(!Const.currentLevel.isBonusLevel())
            canvas.drawBitmap(Const.backgroundBitmap, 1, 1, null);
        else if(this.bonusPicFrame == 0)
            gradient1.draw(canvas);
        else
            gradient2.draw(canvas);
}

gradient1画面に表示されるはずですが、画面が白いです。

何が問題ですか?

4

2 に答える 2

1

drawableこのようなリソースファイルをいつでも使用できます

background.xmlリソースファイルの名前です

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient android:startColor="#B1FCA9" android:endColor="#29C413" android:angle="270" android:type="linear"/>
    <corners radius="10dp"/>
</shape>

そしてそれをあなたのビューに設定しますsetBackgroundResource(R.drawable.background);

于 2013-11-15T08:49:50.310 に答える
0

Bounds を gradient1 と gradient2 の両方に設定する必要があります

于 2013-11-15T09:04:51.037 に答える