[OFFEN] Wie kann ich den Hintergrund abhängig vom Vordergrund Bild dynamisch veränderbar machen?

P

Peter200980

Ambitioniertes Mitglied
0
Hallo Zusammen,

ich würde gerne den Hintergrund meiner Activity abhängig davon, was im Vordergrund angezeigt wird dynamisch veränderbar machen.
Hat hierfür jemand ein paar Tipps/Links?
Schöne Grüße
Peter
 
Hallo Peter ,
du solltest erst mal erklären , was den Vordergrund ausmacht und worauf du dann reagieren magst
Farbton ? Elemente ?
 
Hallo Stefan,

der Hintergrund soll abhängig von einem Bild, dass aus einer SQL Datenbank geladen wird abhängig sein. Schau dir am besten den Anhang an, so hab ich mir das vorgestellt:
upload_2017-3-24_21-20-23.png

Der Hintergrund hat einen braunen Farbverlauf, da dass Cover auch in Brauntönen gehalten ist.
Hast du hierfür Tipps/Links, wie man so etwas machen kann?
 
Hallo Peter ,

dazu müsstest du erst den gewichtigen Farbton deines Bitmaps ermitteln,
also einen Durchschnitt der Farbkanäle oder Farbton (HSL).

Wenn du den dann hast kannst du einen Hintergrund einfärben.

Die Ermittlung ist nicht ohne und man müsste eine ImageBibliothek verwenden ( z.b. OpenCV)
Einfärben könntest du mit setColorFilter (mutate)
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Peter200980
Hallo Stefan,
oh das hört sich sehr kompliziert an, dachte das wäre einfacher aber vielen Dank.
 
Ich hatte mal das gleiche Problem und habe es dann auch verworfen
(ich war zu faul)

Iss halt so, PUNKT = schwarz oder AlphaChannel :)
 
Zuletzt bearbeitet:
Du könntest aber auch die Berechnung auf einem Server machen lassen, oder manuell in einer Datenbank speichern.
 
  • Danke
Reaktionen: Peter200980
Hallo Kardroid,
wenn ich es manuell machen würde, gibt es für so etwas tools, mit denen man solche Farbverläufe relativ einfach erstellen kann?
 
Farbverläufe kannst du ja einfach mit GradientDrawable machen .

Es geht Dir doch hauptsächlich darum , dass du den gewichtigen Farbton des Bitmaps ermittelst und damit du den Farbverlauf bestimmen kannst.
 
Zuletzt bearbeitet:
Hallo Stefan,

ja grundsätzlich schon, da dies nun mit sehr viel aufwand verbunden ist, habe ich mich entschieden, diese Farbverläufe händisch zu machen und diese dann in die app zu laden. Hierfür habe ich gefragt, ob es ein tool dafür gibt
 
Wie oben erwähnt :

Du kannst auch sowas ähnliches hier machen
(Bezieht sich auf einen Fullscreen - background mit Radius)

Code:
     int color_dark   = 0x00;
     int color_light  = 0xFF;

 
     DisplayMetrics metrics = new DisplayMetrics();
     WindowManager wm = (WindowManager) activity.getSystemService(WINDOW_SERVICE);
     wm.getDefaultDisplay().getMetrics(metrics);

   
     GradientDrawable g = new GradientDrawable(GradientDrawable.Orientation.TL_BR, new int[]{color_light,color_dark});
     g.setGradientType(GradientDrawable.RADIAL_GRADIENT);
     g.setGradientRadius(metrics.widthPixels);
     g.setGradientCenter(0.5F,0.2F);
     view.setBackground(g);
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Kardroid
Genau wie Stefan es erklärt.
Die Daten dafür (Farben und Gradients) kann man dann in der Datenbank zusammen mit dem Bildpfad speichern.
 
Hallo Stefan,

puh sowas habe ich noch nie gemacht. Könntest du mir bitte erklären, was der Code bewerkstelligen soll?
 
öhm , das was du wolltest : einen View mit einem Gradient einfärben ?

Hast du ihn denn mal ausprobiert und ggf dazu die Doku gelesen ?
 

Ähnliche Themen

S
Antworten
9
Aufrufe
1.135
swa00
swa00
B
Antworten
6
Aufrufe
1.002
jogimuc
J
M
  • maksimilian
Antworten
3
Aufrufe
1.111
maksimilian
M
Zurück
Oben Unten