我在iOS中有以下实现,它运行良好。
private void States(UIButton button, UIImage unselectedImage, UIImage selectedImage)
{
button.SetImage (unselectedImage, UIControlState.Normal);
button.SetImage (selectedImage, UIControlState.Selected);
button.SetImage (selectedImage, UIControlState.Selected | UIControlState.Highlighted);
}
我正在尝试在Android.Xamarin中实现相同的功能,我实现了ImageButton
而不是Button
。我想知道如何更改Android.Xamarin
中所选或未选中按钮的背景?
private void States(ImageButton button, string unselectedImage, string selectedImage)
{
// I could not able to change the background of the selected/unselected UmageButton
}
我遇到了以下网站(http://developer.xamarin.com/recipes/android/controls/imageview/display_an_image/),但是有两个属性(button+imageView
)被定义为更改按钮背景图像。我认为ImageButton应该在一体化中包含所有这些功能。
以下xml,它只突出显示一个,它不会保持突出显示。我想保持突出显示。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/btn_view_off" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/btn_view_on" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/btn_view_on" />
<item
android:state_enabled="true"
android:drawable="@drawable/btn_view_off" />
</selector>
答案 0 :(得分:1)
您可以使用selectors执行此操作。
我们的想法是为每个州定义不同的drawable
:
<item
android:state_enabled="false"
android:drawable="@drawable/disabledbutton" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/pressedbutton" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/focusedbutton" />
<item
android:state_enabled="true"
android:drawable="@drawable/normalbutton" />