2013-05-31 2 views
5

У меня есть следующий XML-файл:Android пользовательский фон XML атрибут отправить

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#FFFFFF"/> 
    <corners android:radius="10dp"/> 
    <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> 
</shape> 

, как вы можете видеть, все это, является форма с закругленными углами. Я использую его для фона в макетах деятельности следующим образом:

android:background="@drawable/rounded_corners" 

Форма в файле в настоящее время установлена ​​в белый цвет. В разных макетах мне нужны разные цвета. Мне нужно создать другой XML-файл формы для каждого цвета? Мне нужно просто указать в макете, какой цвет отправить на задний план, и таким образом я могу использовать один и тот же xml для любого цвета, который я хочу.

Спасибо.

+0

Это может быть то, что вы ищете: http://stackoverflow.com/questions/11376516/change-drawable-color-programmatically – TronicZomB

+0

Я ищу способ установить его через xml. Что-то вроде background = "red" src = "drawable .." – Meir

+0

В этом случае я не считаю, что это возможно, и вам понадобится несколько фигур. Хотя я мог ошибаться, и в этом случае я хотел бы знать, как это сделать :) – TronicZomB

ответ

1
Do I need to create a different shape xml file for each color? 
  • Да, если вы хотите применить различные цвета для различных файлов макет из компоновщика XML файла самого
  • Нет, Если применить различные цвета для различных файлов макет из его Явы (активности) файл.

Раствор для варианта 2:

// форма вытяжке (rounded_corners.xml)

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#FFFFFF"/> 
    <corners android:radius="10dp"/> 
    <padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" /> 
</shape> 

// файл макета

 <Button 
      android:id="@+id/mButton" 
      ... 
      android:background="@drawable/rounded_corners" 
      /> 

// Java (Activity) файл

Button mButton = (Button) findViewById(R.id.mButton); 
ShapeDrawable rounded_corners = (ShapeDrawable)mButton.getBackground(); 
rounded_corners.getPaint().setColor(Color.RED); 

Надеюсь, это будет полезно!

+0

Спасибо ... Android должен немного узнать о wpf ... – Meir

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