У меня есть ImageButton, который должен обновляться при нажатии кнопки. Событие onClick срабатывает, и я думаю, что само изображение обновляется (поскольку меняется @id BitmapDrawable).
Вот мой код
public void gotoBasicControls(View view) {
viewPager.setCurrentItem(0, true);
bottomButtonRemote.setImageResource(R.drawable.remote_selected_icon_transparent);
bottomButtonRemoteText.setTextColor(getResources().getColor(R.color.colorAppOrange));
}
А вот мой xml
<TableLayout
android:id="@+id/bottomBar"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
android:stretchColumns="*"
android:background="@color/colorWhite"
android:gravity="bottom"
android:paddingBottom="3dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<TableRow>
<ImageButton
android:maxHeight="35dp"
android:id="@+id/bottomRemote"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:background="@null"
android:clickable="true"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:onClick="gotoBasicControls"
android:src="@drawable/remote_icon_transparent"/>
<ImageButton
android:maxHeight="20dp"
android:id="@+id/bottomScoreboard"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:background="@null"
android:clickable="true"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:onClick="gotoScoreboard"
android:src="@drawable/scoreboard_icon_transparent" />
<ImageButton
android:maxHeight="35dp"
android:id="@+id/bottomStopwatch"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:background="@null"
android:clickable="true"
android:paddingLeft="13dp"
android:paddingRight="15dp"
android:onClick="gotoStopwatch"
android:src="@drawable/stopwatch_icon_transparent" />
<ImageButton
android:maxHeight="35dp"
android:id="@+id/bottomSettings"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:background="@null"
android:clickable="true"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:onClick="gotoSettings"
android:src="@drawable/settings_icon_transparent" />
</TableRow>
<TableRow>
<TextView android:text="Basic"
android:id="@+id/bottomRemoteText"
android:textAlignment="center"/>
<TextView android:text="Scoreboard"
android:id="@+id/bottomScoreboardText"
android:textAlignment="center"/>
<TextView android:text="Stopwatch"
android:id="@+id/bottomStopwatchText"
android:textAlignment="center"/>
<TextView android:text="Settings"
android:id="@+id/bottomSettingsText"
android:textAlignment="center"/>
</TableRow>
I should also note that the setTextColor also doesn't work.
Вот что я пробовал:
Использовать URI вместо drawable.
Сделать кнопку недействительной и макет, в котором она находится.