Android 以编程方式更改在另一个xml中用作背景的border.xml的startColor?

Android 以编程方式更改在另一个xml中用作背景的border.xml的startColor?,android,xml,shape,Android,Xml,Shape,我在drawable文件夹中有一个名为border.xml的xml文件。 在这个xml中,我有 在Main.java活动中,我感兴趣的是更改边框的开始和结束颜色,以及角的背景和半径 例如,如果我使用文本视图,我知道如何更改某个id的背景。但我不确定如何更改项目/形状/渐变值 谢谢一种方法是定义第二个可绘制资源,称为drawable/alternate_background.xml。在此文件中,您可以对备选颜色、半径值等进行编码 然后通过编程加载备用资源 linearLayout.setB

我在drawable文件夹中有一个名为border.xml的xml文件。 在这个xml中,我有

在Main.java活动中,我感兴趣的是更改边框的
开始和结束颜色
,以及角的
背景
半径

例如,如果我使用文本视图,我知道如何更改某个id的背景。但我不确定如何更改项目/形状/渐变值


谢谢

一种方法是定义第二个可绘制资源,称为drawable/alternate_background.xml。在此文件中,您可以对备选颜色、半径值等进行编码

然后通过编程加载备用资源

linearLayout.setBackgroundResource(R.drawable.alternate_background);

FWIW,这种方法的一个优点是您的视图仍然是外部化的。因此,您可以使用Eclipse布局编辑器预览更改,而不是等到运行时才看到更改的效果。

嗯,我有一些线性布局,我想更改颜色等等,这取决于特定的应用程序状态(大约三种基本模式)。所以这样做会很麻烦。我认为有一个更新颜色的方法会更容易。试试看。我不认为这更难。java代码是一行程序。此外,我不认为可绘制资源的组件可以在呈现后通过编程进行更改。
<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:padding="0dp"
    android:background="@drawable/border_o2">
linearLayout.setBackgroundResource(R.drawable.alternate_background);