我在drawable文件夹中有一个名为border.xml的xml文件。 在这个xml我有
<!-- +++++++++++++++++++++ BORDER +++++++++++++++++++ -->
<item>
<shape android:shape="rectangle">
<solid
android:id="@+id/shape_border_color"
android:color="@color/black" />
<gradient
android:id="@+id/shapre_border_gradient"
android:startColor="@color/BurlyWood"
android:endColor="@color/Blue"
android:angle="270"
/>
<!-- ++++++++++++++++++++ ROUND CORNERS ++++++++++++++++++++++++++++ -->
<corners
android:id="@+id/shape_border_corners"
android:bottomRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp"
/>
</shape>
</item>
<!-- +++++++++++++++++++++++ BACKGROUND ++++++++++++++++++++++++++ -->
<item
android:left="5dp"
android:right="5dp"
android:top="5dp" >
<shape android:shape="rectangle">
<gradient
android:id="@+id/shape_background"
android:id="@+id/hr_design_background_gradient"
android:startColor="@color/DarkOrchid"
android:endColor="@color/LawnGreen"
android:angle="270"/>
</shape>
</item>
我使用以下代码将上面的xml文件用作main.xml文件中LinearLayout
的背景
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:padding="0dp"
android:background="@drawable/border_o2">
在我的Main.java活动中,我有兴趣更改边框的start and end colors
以及角落的background
和Radius
如果我使用的是TextView,我知道如何更改某个id的背景。但我不确定如何改变Item / Shape / Gradiant值。
由于
答案 0 :(得分:3)
一种方法是定义第二个可绘制资源,称为drawable / alternate_background.xml。在此文件中,您可以编码备用颜色,半径值等。
然后以编程方式加载备用资源。
linearLayout.setBackgroundResource(R.drawable.alternate_background);
FWIW,这种方法的一个优点是您的视图仍然是外部化的。因此,您可以使用Eclipse布局编辑器预览更改,而不是等到运行时才能看到更改的效果。