2014-02-20 1 views
2

Я делаю приложение в Eclipse, но у меня есть некоторые проблемы с изменением образа в приложении. У меня есть .xml-файл, который должен показывать две кнопки в моем приложении. Код:Замена файлов в выделенной папке на android

<?xml version="1.0" encoding="utf-8"?> 

<item android:drawable="@drawable/background_button_pressed" android:state_enabled="false" android:state_pressed="true"/> 
<item android:drawable="@drawable/background_button_pressed" android:state_enabled="true" android:state_focused="true"/> 
<item android:drawable="@drawable/background_button_normal" android:state_enabled="true"/> 

Теперь я хочу, чтобы заменить один из образов, потому что это был неправильный масштаб. Поэтому я заменил background_button_pressed новым изображением в правильном масштабе. Но он все еще показывает старый, когда я запускаю приложение как на эмуляторе, так и на телефоне. Зачем?

Я попытался следующие:

  • очищенную проекта
  • сделал новое изображение под названием «background_button_pressed2» и изменил XML соответственно
  • Я удалил папку бин полностью, чтобы убедиться, что Ждут» т загрузил старый компилятор
  • перезапуска Затмения
  • очищены/построить несколько раз
  • пытались с другой файл IMG в Drawable, чтобы убедиться, что он не был код (тот же результат)
  • проверять каждые Drawable папки, чтобы убедиться, что он не находится в нескольких местах и ​​загружает одну из них

    Я новичок Eclipse, и это просто не имеет для меня никакого смысла.

+0

у вас нет состояния для android: state_enabled = "true" android: state_pressed = "true" Я предлагаю вам снова проверить свои состояния и удалить ненужные состояния. и попробуйте также с различными чертежами. – eluleci

+0

Используйте 9patch, если вы еще не используете его. – user3182577

+0

Вы имели в виду поставить 'state_pressed' во вторую строку вместо' state_focused'? Это объясняет, почему вы не видите его изменения, когда вы его нажимаете. Если вы нажмете кнопку во время ее включения, ее невозможно присвоить. – Tenfour04

ответ

0

Попробуйте следующий код

<item android:drawable="@drawable/background_button_pressed" android:state_selected="true"/> 
<item android:drawable="@drawable/background_button_pressed" android:state_pressed="true"/> 
<item android:drawable="@drawable/background_button_normal"/> 

Если вы хотите изменить Drawable состояние для setEnable (ложное), то вам понадобится следующий код

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_enabled="false" android:drawable="@drawable/background_button_disabled"/> 
    <item android:state_pressed="false" 
     android:drawable="@drawable/background_button_normal" /> <!-- pressed --> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/background_button_pressed" /> <!-- focused --> 
    <item android:state_enabled="true" android:drawable="@drawable/background_button_normal"/>