2016-02-16 2 views
0

Я использую селектор изображений для изменения значков образа вкладки-виджета, когда я выбрал любое изображение, изображение этого изображения должно измениться. Для этого я использовал следующий код, но он работает хорошо, но проблема android: state_pressed = "true" работает, но android: state_selected = "true" не работает ни на одном изображении, я застрял от эта проблема, может кто-нибудь помочь мне, ответ будет заметным. Спасибо заранее.android imageview android: state_selected = "true" не работает

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:drawable="@drawable/ic_contacts_vippie_selected" android:state_selected="true"/> 
<item android:drawable="@drawable/ic_contacts_vippie"/> 

Вот мой ImageView:

 <ImageView 
     android:id="@+id/hiiMoblieContact" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:src="@drawable/flexi_contact_selector" /> 
+0

ImageView не сохраняет состояние, используйте переключатель вместо зрения изображения и дать изображение backgrond его. – curiousMind

+0

@ Андроид как ?? у вас есть какой-нибудь exmaple, пожалуйста, помогите мне – User11

+0

@ Андроид вы можете дать мне ссылку? – User11

ответ

1

ImageView не сохраняет состояния. Но не волнуйтесь, есть обходной путь. Либо используйте toggleButtons и установите фон илиCheckableLinearlayoutв качестве родителя изображения. Xml изображения должен быть таким:

<package_name.CheckableLinearLayout android:layout_width="wrap_content" 
             android:layout_height="wrap_content" 
             android:orientation="vertical"> 
    <ImageView 
     android:id="@+id/hiiMoblieContact" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:clickable="false" 
     android:duplicateParentState="true" 
     android:src="@drawable/flexi_contact_selector"/> 
    </package_name.CheckableLinearLayout> 

Изменения выделены полужирным шрифтом. Теперь вы можете обработать установленный checkablelinearlayout установленный метод. Если, например, вы установили для параметра checkacle linearlayout значение true, изображение автоматически изменится. Вам нужно будет сделать этот класс CheckableLinearLayout в вашем проекте и его ссылку есть - http://developer.android.com/intl/es/samples/CustomChoiceList/src/com.example.android.customchoicelist/CheckableLinearLayout.html

+0

thankou я проверяю это – User11

+0

@navya помогло? –

+0

спасибо да, я попробовал это .. :) – User11

2

Вместо изображения можно использовать кнопку переключения или флажок или переключатель. Например, я использую флажок.

<CheckBox 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/hiiMoblieContact" 
    android:button="@drawable/flexi_contact_selector"/> 

flexi_contact_selector

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:drawable="@drawable/ic_contacts_vippie_selected" android:state_checked="true" /> 
<item android:drawable="@drawable/ic_contacts_vippie" /> 

</selector> 

Надеется, что это поможет вам ..

+0

спасибо .. :) .. – User11