Pixel Farbe in eine andere Farbe ändern im ImageView von ein Icon

wer112

Top Contributor
Die Nutzer entscheiden ja, welche App reinkommt bzw. rausfliegt. Damit keine Schrott Apps reingelangt.
Bei mir gibt es keine Sterne, sondern nur Daumen hoch oder Daumenrunter +1/ -1 (Prozent ausrechnen, wie viele posetive Daumen und wie viele Negative Daumen gibt)

Wenn man die App nicht bewertet hat, sind beide Daumen schwarz. Drückt man jetzt auf den Daumen hoch wird der Schwarze Daumen zu einem Grünen Daumen und der Daumen nach unten bleibt Schwarz. Drück man den Daumen nach Unten wird dieser Rot und der Grüne Daumen bzw. Schwarzer Daumen bleib bzw. wird Schwarz.
Damit kann der Nutzer immer sehen, was er gewählt hat.

Leider habe ich einen Ansatz ausprobiert, der nicht funktioniert hat. Also um Farbe zu setzen, sowas: 0x000000. Wenn ich das so hatte, waren die Daumen weg.
Ich habe danach die Farbe geparst und die Daumen Sind wieder Schwarz. Leider verändern diese nicht die Farbe.
Vielleicht habe ich einen falchen Code verwendet.


[CODE lang="java" title="Der Code Ausschnitt"] like = (ImageView)fragmentlayout_app_fragment.findViewById(R.id.image_like);
dislike = (ImageView)fragmentlayout_app_fragment.findViewById(R.id.image_dislike);

Bewertung();

like.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

bewertung.equals(1);

Bewertung();
}
});

dislike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
bewertung.equals(2);


Bewertung();
}
});



/*

AppDatenImport();

*/



IsAppInstall();








return fragmentlayout_app_fragment;
}

private void Bewertung() {

switch (bewertung){
case 0:
like.setColorFilter(Color.parseColor("#000000"), PorterDuff.Mode.MULTIPLY);
dislike.setColorFilter(Color.parseColor("#000000"), PorterDuff.Mode.MULTIPLY);
break;

case 1:

like.setColorFilter(Color.parseColor("#00875f"), PorterDuff.Mode.MULTIPLY);
dislike.setColorFilter(Color.parseColor("#000000"), PorterDuff.Mode.MULTIPLY);

break;

case 2:

like.setColorFilter(Color.parseColor("#000000"), PorterDuff.Mode.MULTIPLY);
dislike.setColorFilter(Color.parseColor("#ff0000"), PorterDuff.Mode.MULTIPLY);

break;
}

}
[/CODE]


Ich habe ganz oben einen Integer gestetzt mit einer 0 oder eine andere Zahl, um zu sehen, obs funktioniert.
Da das mit den Zahl setzen nicht wusste, obs funktioniert hatte.

Hat am Anfang das gesagt: bewertung = 1;

Also werde ich das irgendwann erneut ausprobiert, sobald die Start Farbe stimmt....

Als Hat jemand eine Idee, wie ich die Farbe eines Icon, dass ich im Image View verwende das Schwarz in Grün, Rot oder Schwarz ändern kann?


Sonst müsste ich den Hintergrund ändern, was s..... aussieht.
 

Jw456

Top Contributor
Benutze doch verschiedene Icons in allen Farben die du brauchst.

setColorFilter ist sowieso deprecated seit API 29

 

wer112

Top Contributor
Benutze doch verschiedene Icons in allen Farben die du brauchst.

setColorFilter ist sowieso deprecated seit API 29

Das problem ist, dass ich nicht mehr in die Vektor Images rein komme und somit größeres Problem habe. Gibt es ein anderen Weg? Wie ich die Pixel ändern kann ? (Gibts bestimmt ein ersetzen Befehl...)

Leider gibt es nur die Möglichkeit Schwarz oder Weiß. Deswegen müsste ich die Pixel ja ändern können...
 

Jw456

Top Contributor
Was du willst wird so auch nicht gehen.
Was macht die Methode sie färbt jedes Pixel im Drawable mit den Farbton ein.
Es pass sozusagen die Farbtemperatur an. Wie der Farbton verrechnet wird, wird mit dem zweiten Parameter bestimmt. Schaue in die doku welche es da gibt.
Eine Farbe durch eine andere ersetzen geht damit nicht.
Das wirkt immer auf alle Pixel außer Transparent.

 
Zuletzt bearbeitet:

wer112

Top Contributor
Was du willst wird so auch nicht gehen.
Was macht die Methode sie färbt jedes Pixel im Drawable mit den Farbton ein.
Es pass sozusagen die Farbtemperatur an. Wie der Farbton verrechnet wird, wird mit dem zweiten Parameter bestimmt. Schaue in die doku welche es da gibt.
Eine Farbe durch eine andere ersetzen geht damit nicht.
Das wirkt immer auf alle Pixel außer Transparent.
Und eine andere Methode, wo alle Schwarze Pixel gegen eine andere Farbe ersetzt werden? Sowas wäre ja ansicht möglich.
 

Jw456

Top Contributor
eine fertige methode dafür gibt es nicht.
Aber hast du dir mal angesehen was MULTIPLY macht.

Ich würde 6 Drawable benutzen und die Sache ist gegessen.
 
K

kneitzel

Gast
Wäre es nicht einfach, die jeweiligen Bilder bereit zu stellen und dann das Bild zu tauschen? Also z.B. mittels setImageResource.
 

Jw456

Top Contributor
Vektor Grafiken lassen sich doch auch im Studio mit dem Asset Editor bearbeiten und neu speichern.
oder benutze ein anderes Tool dafür.

 

wer112

Top Contributor
Wäre es nicht einfach, die jeweiligen Bilder bereit zu stellen und dann das Bild zu tauschen? Also z.B. mittels setImageResource.
Das habe ich jetzt auch so gemacht, ich habe einfach den like kopiert und ein _on rangehängt und das gleiche bei dislike. Ich habe dadrinnen die Farbe geändert. Ich versuche die App so klein wie nur möglich halten, denn niemand lädt den Playstore runter, wenn dieser mehrere GB Speicherplatz benötigt.
Und Code ansicht brauch weniger Speicherplatz....

Hier der Farbwechsel App bewertungscode(Wird noch hinzugefügt, dass man die erst bewerten kann, sobald man die App mind. 1 x installiert hatte..):

Java:
  like = (ImageView)fragmentlayout_app_fragment.findViewById(R.id.image_like);
        dislike = (ImageView)fragmentlayout_app_fragment.findViewById(R.id.image_dislike);



        SharedPreferences prefsbewertung = getActivity().getSharedPreferences("Bewertung", getActivity().MODE_PRIVATE);
        bewertung = prefsbewertung.getInt("bewertung", bewertung);




        Bewertung();

        like.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                bewertung = 1;
                SharedPreferences prefs = getActivity().getSharedPreferences("Bewertung", getActivity().MODE_PRIVATE);
                SharedPreferences.Editor editor = prefs.edit();
                editor.putInt("bewertung" , bewertung);
                editor.apply();
                Toast.makeText(getActivity(), "Bewertung ist: " + bewertung, Toast.LENGTH_SHORT).show();

                Bewertung();
            }
        });

        dislike.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bewertung = 2;

                SharedPreferences prefs = getActivity().getSharedPreferences("Bewertung", getActivity().MODE_PRIVATE);
                SharedPreferences.Editor editor = prefs.edit();
                editor.putInt("bewertung" , bewertung);
                editor.apply();
                Toast.makeText(getActivity(), "Bewertung ist: " + bewertung, Toast.LENGTH_SHORT).show();

                Bewertung();
            }
        });



        /*
        
        AppDatenImport();
                
         */



                IsAppInstall();




        



        return  fragmentlayout_app_fragment;
    }

    private void Bewertung() {

        switch (bewertung){
            case 0:
                like.setImageResource(R.drawable.ic_like);
                dislike.setImageResource(R.drawable.ic_dislike);
                break;

            case 1:

                like.setImageResource(R.drawable.ic_like_on);
                dislike.setImageResource(R.drawable.ic_dislike);

                break;

            case 2:

                like.setImageResource(R.drawable.ic_like);
                dislike.setImageResource(R.drawable.ic_dislike_on);

                break;
        }

    }

Ps.: Man könnte ja die Pixel auslesen und die dann ändern, was aber sehr bestimmt für mich zu kompliziert sein würde 😉
 

wer112

Top Contributor
Vektor Grafiken lassen sich doch auch im Studio mit dem Asset Editor bearbeiten und neu speichern.
oder benutze ein anderes Tool dafür.

Leider ist dies nicht möglich. Sonst hätte ich ja das gemacht. Ich muss ja die Icons unter fonts.google.com runterladen, aber dort gibt es nur schwarz und weiß.

Welches lizensierte Tool kennst du von Google?
 

Jw456

Top Contributor
wenn dieser mehrere GB Speicherplatz benötigt.
Und Code ansicht brauch weniger Speicherplatz....
deine Drawable sind ja vektorgrafiken also brauchen nicht viel speicherplatz.



Wenn es keine fertigen Icons für dich gibt.
Dann erstelle selber Icons
 

Jw456

Top Contributor
das ist ja ein Daumen hoch

Java:
<?xml version="1.0"?>

-<vector android:tint="?attr/colorControlNormal" android:viewportHeight="24" android:viewportWidth="24" android:height="24dp" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">

<path android:pathData="M1,21h4L5,9L1,9v12zM23,10c0,-1.1 -0.9,-2 -2,-2h-6.31l0.95,-4.57 0.03,-0.32c0,-0.41 -0.17,-0.79 -0.44,-1.06L14.17,1 7.59,7.59C7.22,7.95 7,8.45 7,9v10c0,1.1 0.9,2 2,2h9c0.83,0 1.54,-0.5 1.84,-1.22l3.02,-7.05c0.09,-0.23 0.14,-0.47 0.14,-0.73v-2z" android:fillColor="@android:color/white"/>

</vector>

wo ist jetz das Problem die farbe zu ändern?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Brauche Screengröße in pixel angaben Android & Cross-Platform Mobile Apps 5
M ein image pixel für pixel aufbauen : setPixel() ? Android & Cross-Platform Mobile Apps 1
Noahscript Wie würdet ihr Strings gegen Farbe austauschen? Android & Cross-Platform Mobile Apps 11
A Android Ändern der Farbe des NavBar Titels Android & Cross-Platform Mobile Apps 2
L Android Action Bar Farbe bleibt Grau Android & Cross-Platform Mobile Apps 1
G Farbe des RadioButton -Punktes Android & Cross-Platform Mobile Apps 3
P EditText mehrere Zeilen - verschiedene Farbe Android & Cross-Platform Mobile Apps 3
L Android Wie erstelle ich eine dynamische Tabelle (TableLayout)? Android & Cross-Platform Mobile Apps 2
W Zur Laufzeit erstelltes MenuItem an eine View binden Android & Cross-Platform Mobile Apps 1
J Android Zugriff auf eine Datei, diese von einer anderen App erstellt wurde? Android & Cross-Platform Mobile Apps 11
S Sinnvollste weg eine SQLite DB mit Android auslesen Android & Cross-Platform Mobile Apps 7
L Regelmäßig eine Methode im Hintergund ausführen Android & Cross-Platform Mobile Apps 1
J Android Wann ist eine App privat? Android & Cross-Platform Mobile Apps 10
M Android Schreiben von JsonDaten in eine SqliteDB Android & Cross-Platform Mobile Apps 7
M Suche eine Webseite mit dem aktuelle Datum in XML Android & Cross-Platform Mobile Apps 18
R Android Eine Website-frame in einer App Android & Cross-Platform Mobile Apps 4
Robat Android Wie mache ich eine App mit verschiedenen Leveln? Android & Cross-Platform Mobile Apps 8
M [Android] Wie erstellt man eine Verknüpfung eines Ordners? Android & Cross-Platform Mobile Apps 7
R [ANDROID] Dynamisch eine Liste erweitern Android & Cross-Platform Mobile Apps 3
K Verständisfrage bzgl. Buttons und ihnen eine Funktion geben. Android & Cross-Platform Mobile Apps 3
X Android Wo gibts eine SortableListView? Android & Cross-Platform Mobile Apps 6
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
S Android In Service überprüfen ob eine Activity gebunden ist? Android & Cross-Platform Mobile Apps 6
B TableLayout verhält sich nicht wie eine Tabelle Android & Cross-Platform Mobile Apps 3
L Android Eine Kleinigkeit für Profis Android & Cross-Platform Mobile Apps 2
A Android Eine Datei in Android löschen, aber wie ? Android & Cross-Platform Mobile Apps 24
A Koordinaten eine Images feststellen Android & Cross-Platform Mobile Apps 9
U [Android] Eine Datei aus Jar-Archiv laden Android & Cross-Platform Mobile Apps 4
N Gibt es eine opensource Speech-to-Text engine? Android & Cross-Platform Mobile Apps 3
B Android Eine Warnung in der Console (Eclipse) auswerten Android & Cross-Platform Mobile Apps 3
T Android Ergebnis eines XML+XSLT "transform" in eine HTML - Datei schreiben (Android) Android & Cross-Platform Mobile Apps 2
M Eclipse: cdc.jar in eine Midlet Suite integrieren Android & Cross-Platform Mobile Apps 18
L SecurityException beim lesen/schreiben eine Datei Android & Cross-Platform Mobile Apps 7
H Gibt es eine Alternative zur Location API? Android & Cross-Platform Mobile Apps 4
F Wie komplex wäre eine Wecker-Applikation? Android & Cross-Platform Mobile Apps 5

Ähnliche Java Themen

Neue Themen


Oben