我有一个扩展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
应出现在我的屏幕上,但屏幕为白色。
有什么问题?
答案 0 :(得分: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);
答案 1 :(得分:0)
你必须将setBounds设置为gradient1和gradient2