Android Blur View (Verwischen Hintergrund hinter der Ansicht)

9

Ich versuche, den unteren Teil eines Bilds für die obere Ansicht wie im Bild zu verwischen.

Ich habe versucht, es mit Rendenscript zu verwischen, aber ich kann nicht nur den Teil hinter der Ansicht verwischen. : (

Ich habe viele Bibliotheken gesehen, aber fast alle verwischen das gesamte Bild, aber nicht ein Teil davon.

Ein wichtiger Teil ist auch, dass ich dies in einem ViewPager verwende und daher schnell und dynamisch sein muss, etwa dies in IOS das sich selbst neu zeichnet, sobald sich das Bild dahinter ändert.

Jede Hilfe wird geschätzt. Danke für Ihren Besuch!

Mein xml:

%Vor%

Mein Code:

BlurBuilder.java

%Vor%

In meiner MainActivity onCreate mache ich:

%Vor%

Unten ist das Ergebnis:

    
Atul O Holic 04.08.2015, 12:08
quelle

3 Antworten

3

Fügen Sie diese zwei Klassen Ihrer App hinzu,

1 & gt; BlurKit.Java

%Vor%

2 & gt; BlurLayout.Java

%Vor%

in XML-Datei:

%Vor%

Vergessen Sie nicht, dies zu hinzufügen Werte & gt; attr.xml

%Vor%     
Deep Patel 03.01.2017 10:50
quelle
1

Dies kann in folgenden Schritten erreicht werden:

  • Extrahieren Sie das Hintergrundbild von LinearLayout, indem Sie Hintergrundbild beschneiden. Erweitern Sie nun die LinearLayout-Klasse.

  • Überschreibe OnDraw (Canvas mCanvas) -Methode.

  • Erstellen Sie zwei Methoden in Ihrer benutzerdefinierten LinearLayout-Klasse:

    1. DrawBitmap
    2. Zeichenfarbe.
  • Rufen Sie zuerst die Funktion DrawBitmap auf, indem Sie den Offset, den Sie von ViewPager erhalten haben, dem Hintergrundbild zuweisen, damit sich das Bild bewegt, wenn Sie den Bildschirm überstreichen.

  • Zeichnen Sie abschließend die Farbe mit Ihrer Transparenzstufe

Ich hoffe, dass dies Ihr Problem lösen wird.

Beispielcode hierfür

So verwischen Sie eine Ansicht

    
M.ArslanKhan 03.01.2017 10:08
quelle
-1

Versuchen Sie applyBlur Methode:

%Vor%     
Pehlaj 25.05.2016 11:29
quelle