2013-05-31 17 views
5

ho il seguente file xml:Android personalizzato sfondo xml attributo di invio

<?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> 

come si può vedere, tutto ciò che è, è una forma con angoli arrotondati. Lo uso per lo sfondo nei layout di attività come segue:

android:background="@drawable/rounded_corners" 

La forma nel file è attualmente impostata su bianco. In diversi layout ho bisogno di colori diversi. Devo creare un file xml di forma diversa per ogni colore? Ho bisogno di un modo per specificare nel layout di quale colore inviare allo sfondo, e in questo modo posso usare lo stesso xml per qualsiasi colore che voglio.

Grazie.

+0

Questo potrebbe essere quello che stai cercando: http://stackoverflow.com/questions/11376516/change-drawable-color-programmatically – TronicZomB

+0

Sto cercando un modo per impostarlo tramite l'xml. Qualcosa come background = "red" src = "drawable .." – Meir

+0

In tal caso, non credo che ciò sia possibile e avrai bisogno di più forme. Anche se potrei sbagliarmi, nel qual caso mi piacerebbe sapere come fare anche questo :) – TronicZomB

risposta

1
Do I need to create a different shape xml file for each color? 
  • Sì, se si desidera applicare il colore diverso per i diversi file di layout da file xml del layout di stesso
  • No, se si applica il colore diverso per i diversi file di layout dalla sua java (Attività) file.

Soluzione per l'opzione 2:

// forma disegnabile (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> 

// file di layout

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

// java (Attività) file

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

Spero sia utile !!

+0

Grazie ... Android dovrebbe imparare un po 'da wpf ... – Meir

Problemi correlati