getResources().getDrawable

M

MandraKobold

Ambitioniertes Mitglied
3
Hallo,

habe mal eine 'einfache' Frage:

soviel ich weiss, ist es möglich eine Icon über

Code:
getResources().getDrawable(id)
(eine Instance des Icons) zu laden, und das sogar mehrfach und zum Beipiel einer bzw. mehreren ImageView(s) zu zuweisen.

Ist es aber möglich die Resource mehrmals neu zu laden??

Zum Hintergrund:

In einer App wird das selbe Icon mehrfach innerhalb einer Activity genutzt. Dazu wird dieses aus den Resourcen geladen. --> kein Problem
Dieses Icon sollen aber jeweils eine andere Farbe haben und wird daher mit Hilfe von PorterDuff eingefärbt.
Beim laden der Resource wird immer auf das gleiche Icon zu gegriffen.
Ich würde aber gerne das Icon immer neu geladen haben, also nicht auf eine Instance zurückgreifen, wie es mit getRessource(id) erfolgt.
Ist das möglich und wenn ja wie????

Hier ein Codesnipe damit ihr euch das besser vorstellen könnt :

Code:
Drawable drawable = context.getResources().getDrawable(
                    R.drawable.ic_btn_checked);
drawable.setColorFilter(newIconColor,
                    android.graphics.PorterDuff.Mode.SRC_ATOP);
Danke
 
ok Problem gebannt

ich lese die Ressource als Bitmap ein und wandele sie dann zu einem Drawable. Damit ist das Problem gelöst da jedes Bitmap keine Instance auf die Resource ist.

Code:
Bitmap bitmap = BitmapFactory.decodeResource(ID);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
drawable.setColorFilter(newIconColor,android.graphics.PorterDuff.Mode.SRC_ATOP);
Könnte zwar mit dem Speicher auf dauer Probleme geben, aber ich lass es mal darauf ankommen ;-)

Danke, an die die sich darüber gedanken gemacht hatten.
 

Ähnliche Themen

M
  • manfred_sx
Antworten
4
Aufrufe
2.423
Neeldarax
N
P
Antworten
4
Aufrufe
1.142
peacefish
P
Zurück
Oben Unten