2015-10-14 2 views
1

У меня есть следующий xml-файл. Я хочу сделать форму круга кнопок с некоторым фоном color.but моя каждая кнопка будет содержать разные цвета фона. Для одной кнопки я могу это сделать принимая xml в drawable и определяем форму и цвет для button.but этим методом мне нужно создать отдельный XML-файл для каждой кнопки для формы и color.but, я хочу сделать это только в одном файле xml, который содержит форму и другой цвет так что я могу уменьшить XML-файлы в вытяжкеТакая же форма с разными цветами в Android

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:orientation="vertical" > 

     <Button android:id="@+id/button" 
        android:layout_width="50dp" 
        android:layout_height="50dp" 
        /> 
     <Button android:id="@+id/button1" 
        android:layout_width="50dp" 
        android:layout_height="50dp" 
        /> 
     <Button android:id="@+id/button2" 
        android:layout_width="50dp" 
        android:layout_height="50dp" 
        /> 
     </LinearLayout> 
+1

Почему бы не изменить цвет или фон программно? –

+0

@SyedNazarMuhammad да, это может быть единственным вариантом для моей проблемы, но это увеличит мой код. Я хочу свести к минимуму код, насколько это возможно, как могу. – Dhiraj

+0

Тогда как это могло быть? –

ответ

0

Определить форму roundbutton.xml как следующее:

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="ring"> 
     <solid android:color="#FFFFFF"/> 

    </shape> 

Затем назначьте фигуру на кнопку

<Button 
      android:id="@+id/round1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@drawable/roundbutton" 
      android:gravity="center" /> 

После этого вы можете использовать Java, чтобы изменить цвет

round1.setBackgroundColor(Color.BLACK); 

И вам нужно import android.graphics.Color;: не import android.R.color;

или шестнадцатеричным кодом (не 3-байтовый) 0xFF000000, где первый байт устанавливает альфа.

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