2013-08-10 2 views
5

Я пытаюсь изменить фон кнопки, чтобы показать ход выполнения фонового процесса. Я использую растяжимый, состоящие из двух цветов, так что теперь мне нужно изменить программно верхние и нижние свойства этих <item> с в следующем послойноге список:<item> property softwareatically

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

    <item android:bottom="20dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="#FFFFFF" /> 
     </shape> 
    </item> 

    <item android:top="30dp"> 
     <shape android:shape="rectangle" > 
      <solid android:color="#000000" /> 
     </shape> 
    </item> 
</layer-list> 

Я не будучи в состоянии выбрать <item> элементов и изменить их из java-кода.

ответ

0

Изменение XML никоим образом не поможет, поскольку Android не использует их во время выполнения. Вместо этого взгляните на LayerDrawable, потому что это то, что создано из вашего XML и используется в Runtime.

Итак, вы можете сделать что-то вроде этого и продолжить оттуда: LayerDrawable ld = (LayerDrawable) mButton.getBackground();

+0

Пользовательский класс Drawable был лучшим решением. – alvarovmz

0

Просто создайте тот же XML-файл с другими значениями элементов и установите новый фон для своей кнопки. Кажется, вы не можете изменить эти значения во время выполнения.

+0

Мне нужно установить определенные значения, чтобы показать текущее состояние фоновой задачи. Это невозможно с другим статическим xml-файлом. – alvarovmz

Смежные вопросы