Android: Changement de Forme de Couleur lors de l'exécution

J'ai un drawable que j'ai utiliser comme arrière-plan pour un LinearLayout. Je voudrais changer la couleur de cette Forme dans l'exécution. J'ai essayé plusieurs méthodes.. mais aucun travail.

J'ai suivi la procédure décrite ici: http://www.anddev.org/android-2d-3d-graphics-opengl-problems-f55/change-shape-drawable-solid-color-t16798.html

Mais qui ont le même problème... il ne se bloque.. mais la couleur ne change!

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#00A6C1" />
    <corners android:radius="@dimen/square_corners" />
</shape>

Extrait de code:

GradientDrawable drawable = (GradientDrawable) activity.getResources().getDrawable(R.drawable.blue_square_shape);


int color = ((Application) getApplication()).getColor();
drawable.setColor(color);

block.findViewById(R.id.blockSquare).setBackgroundDrawable(drawable);

findViewById(R.id.blockSquare).postInvalidate();

La moindre idée? J'ai passé toute la journée à googler... et ça devient assez gênant...

Mise à JOUR:

Quand j'essaie de faire la même chose pour cette Forme:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/shape" android:shape="rectangle">
    <gradient android:startColor="#1FBCCF" android:endColor="#06A4C1"
        android:angle="270" />
    <corners android:topLeftRadius="@dimen/footer_corners"
        android:topRightRadius="@dimen/footer_corners" />
</shape>

La couleur vire au noir... ce que j'imagine, dit-il, peut être changé...

  • Juste une supposition. Le Drawable n'est pas mutatable, de sorte que vous devez créer une copie, et muter qu'un.
  • Pourquoi, alors, elle se transforme en noir sur le second exemple?! :-S
  • De quelle couleur vous le mettre? Noir?
  • Pas de. Jaune. Une chose que j'ai remarqué, c'est que la couleur que je suis de passage est en mode RVB et il s'attend à ce ARGB. La couleur que j'utilise est une analyse d'une chaîne de caractères #RRGGBB.
  • Faire dans ce cas utiliser les binaires OU de votre analysée nombre et 0xFF000000.
  • Sans succès jusqu'à présent.. j'utilise maintenant une nouvelle Forme créée dans l'exécution. Ce n'est pas encore la solution que je cherchais. Modification de la couleur actuelle, il veux je veux vraiment..
  • Je pense que toutes les réponses ici changer la couleur d'arrière-plan, mais pas de la couleur de l'image. Gi-je le droit? quelqu'un peut-il me dire s'il vous plaît? J'ai essayé toutes les solutions ici et aussi sur les mêmes questions sur stackoverflow, mais ils uniquement changer la couleur d'arrière-plan en mai cas. Donc, je pense, nous ne pouvons changer la couleur de fond, mais pas les images couleur. Je suis-je droit?

InformationsquelleAutor neteinstein | 2011-05-09