在运行时更改xml栏

时间:2014-02-22 00:22:10

标签: java android xml colors runtime

我希望更改xml文件中定义的app:footercolor值,我想在运行时执行此操作。

我怎样才能做到这一点?我还没有找到有关如何执行此操作的任何信息。我发现很难学到一些关于通过java改变xml的东西。我确信必须有办法让这种情况发生,而我却无法理解。

这是xml文件:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <com.viewpagerindicator.TitlePageIndicator
        android:id="@+id/indicator"

        android:padding="10dip"
        android:layout_height="40dp"
        android:layout_width="fill_parent"

        android:background="#000000"    
        android:textColor="#1573D6"
        app:footerColor="#1573D6"

        app:footerLineHeight="2dp"
        app:footerIndicatorStyle="none"

        app:selectedColor="#FFFFFF"
        app:selectedBold="true" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"

        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

谢谢

1 个答案:

答案 0 :(得分:0)

启动活动时,XML定义将变为Java对象。因此,您需要做的是获取对这些Java对象的引用并进行更改 - 而不是尝试修改XML。

我对Android不是很熟悉,但我认为以下内容可行:

TitlePageIndicator titleIndicator = (TitlePageIndicator)findViewById(R.id.indicator);
int blue = 0xFF;
titleIndicator.setFooterColor(blue);
titleIndicator.invalidate(); // get the UI to repaint this View at some point

让我知道它是怎么回事!