2017-08-25 2 views
0

Gibt es eine Möglichkeit, ein Bild auf ein Android-Layout zu richten und es zu modifizieren, bevor es vom Anforderer empfangen wird?Hook, um ein Bild zu erhalten, nachdem es aus einem Layout geladen wurde

Zum Beispiel, wenn ich eine Bildansicht, wie habe:

<ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/myimage.png" 
     /> 

Ist es möglich, zu jedem Haken (oder jede anderen Art und Weise) zu registrieren, wo ich das Bild ändern könnte, bevor der Image es empfängt ?.

ein bisschen mehr um die Frage zu klären Versuch:

1) Die übliche Notation Weise android Werke:

  • Die App läuft und liest ein Layout mit einer Imageview @ ziehbar anfordernden/myimage.png
  • :
  • Das Bild wird auf die Bildansicht zu zeigen

2) Was ich möchte versuchen, oder zu erreichen geladen und bereitgestellt

  • Die App läuft, und liest ein Layout mit einer Imageview @ ziehbar anfordernden/myimage.png
  • ich vorher irgendwie android hat mir gesagt, das Bild/Strom vor senden es an die Imageview bietet. Ich ändere es
  • Ich gebe das modifizierte Bild zurück und es wird in der Bildansicht gezeigt.

Weiß jemand, ob dies möglich ist? Ich habe Offuscatoren wie Dexguard gesehen, die das tun können. Jeder Tipp wäre wirklich hilfreich, weil ich nach einigen Tagen der Untersuchung keine Möglichkeit gefunden habe, dies zu tun.

Prost.

+0

versuchen picasso mit oder glide library .. sie erlauben die Änderung Ihrer Bildansicht .. –

+0

Ich glaube nicht, dass dies eine richtige Antwort ist meine Frage. Picasso oder Glide sind Libs, um Bilder zu einer Bildansicht von lokal oder remote zu streamen (weiß nicht, ob es andere Funktionen hat), aber sie erlauben nicht, das zu tun, was ich tun möchte. Beide zeigen auf dem Bild das Originalbild an. – Notbad

Antwort

0
  • Sie müssen Bitmap extrahieren von Ressourcen
  • Ändern Sie die Bitmap
  • Anwenden modifizierte Bitmap Imageview durch Java-Code

Diese Schnipsel helfen könnten

//extract bitmap from drawable resources  
Bitmap icon = BitmapFactory.decodeResource(getResources(), 
              R.drawable.icon_resource); 
//modify bitmap code here 

//apply modified bitmap to image view  
imageview.setBitmap(icon); 
+0

Ich schätze Ihre Antwort sehr, aber das löst nicht, was ich tun möchte. Dieser Code lädt einfach das Bild selbst und füttert die Bildansicht manuell. Ich möchte die Anfrage eines Bildes aus einer Ansicht in einem Layout "fangen" und in die Mitte kommen und die Ausgabe an diese Bildansicht liefern. Ich mache das in einer App, die ich als Proof of Concept mache. Ich weiß, wie man es auf die übliche Weise macht (so wie du es gemacht hast). – Notbad

+1

Ich denke, Sie müssen möglicherweise eine neue Klasse erstellen, die ImageView erweitert, die Funktion findet, die das Bild anfordert und es im Bild anzeigt und dort ändert. Ich bin mir nicht sicher, welche Funktion dafür geeignet ist, aber es kann funktionieren, die Aktivität jeder Funktion zu beobachten, indem man sie überschreibt und Protokolle verwendet. Hoffe, es hilft –

+0

Danke nochmal @kamran, aber ich bin auf der Suche nach einer Möglichkeit, es zu tun, ohne die Standard-Bildansicht ändern. Ich werde diese Antwort trotzdem verbessern, weil sie anderen helfen kann. Es scheint, dass Offuscatoren wie Dexguard es können, deshalb suche ich danach. – Notbad

Verwandte Themen