改变可绘制背景的值

时间:2016-03-18 09:31:49

标签: java android

你好我想要做的是在drawable文件bg.xml中设置一个值 这是文件

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:startColor="#ffc2e59c"
                android:centerColor="#ff3a7a7a"
                android:endColor="#ff3a7a7a"
                android:angle="135"/>
        </shape>
    </item>
</selector>

如果文件存在,我想更改android:startColor="#ffc2e59c"。 (我已经知道使用if来使用它。) 所以我想做的是

    my lines {  

    if (filee.exists()) {

    change the color to something else 
    (android:startColor="#ffffffff")
    }

}

2 个答案:

答案 0 :(得分:0)

我认为完成这项工作的正确方法是:

File f = new File("cbc.db");
if(f.exists() && !f.isDirectory()) { 
    int h = v.getHeight();
    ShapeDrawable mDrawable = new ShapeDrawable(new RectShape());
    mDrawable.getPaint().setShader(new LinearGradient(0, 0, 0, h, Color.parseColor("#330000FF"), Color.parseColor("#110000FF"), Shader.TileMode.REPEAT));
    v.setBackgroundDrawable(mDrawable);
}

有关详细信息,请参阅this post

答案 1 :(得分:0)

你可以创建另一个drawable并实际添加为背景,如图所示here