2013-05-31 44 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。像背景=「紅色」src =「繪製..」 – Meir

+0

在這種情況下,我不相信這是可能的,你將需要多個形狀。雖然我可能是錯的,在這種情況下,我想知道如何做到這一點:) – TronicZomB

回答

1
Do I need to create a different shape xml file for each color? 
  • 是的,如果你想從佈局的xml文件本身
  • 沒有,如果你從它的的Java應用不同的顏色,不同的佈局文件(活動爲不同的佈局文件應用不同的顏色)文件

選項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的(活性)文件

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

我希望它會有幫助!

+0

謝謝... Android應該從wpf學到一點... – Meir