In meiner App kann der Benutzer ein Bild aus der Galerie auswählen und es in den Hintergrund einer RelativeLayout
setzen. Aber das Bild wird in meiner onActivityResult() -Methode nie sofort auf den Hintergrund gesetzt, wenn ich die Bitmap des gewählten Bildes mit Picasso in meine Ansicht lade.setBackground() in onActivityResult wird nie aufgerufen
ist hier ein screenrecord Video des Problems: https://www.youtube.com/watch?v=jABnheTV0IU
Aber wenn diese Methode in meinem RecyclerView Adapter wird das Bild aufgerufen wird als Hintergrund für den RelativeLayout sofort eingestellt:
@Override
public void onClick(final View v) {
int position = getLayoutPosition();
String path = PreferenceManager.getDefaultSharedPreferences(context).getString(App.IMAGE_URI,"");
/*
This put the current selected image from the gallery as background
*/
if (position == 0 && !path.isEmpty()) {
Picasso.with(context).load(path).centerCrop().resize(view.getWidth(), view.getHeight()).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
view.setBackground(new BitmapDrawable(bitmap));
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
die onActivityResult in Meine MainActivity-Klasse.
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
if (resultCode == RESULT_OK && requestCode == 1 && data.getData() !=null) {
PreferenceManager.getDefaultSharedPreferences(this).edit().putString(App.IMAGE_URI, data.getData().toString()).apply();
Picasso.with(this).load(data.getData()).centerCrop().resize(width, height).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
//this is never called or dosn't work
relativeLayout.setBackground(new BitmapDrawable(bitmap));
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
}
}
Gerade hier unter (if (Result = = RESULT_OK && requestCode == 1 && data.getData()! = Null) {) add (Log.i ("Running", "Running");) und im Logcat Search-Typ (Running) - siehst du Running wenn du zurück zur Hauptaktivität gehst ?? Wenn das nicht der Fall ist, dann ist das falsch (if (resultCode == RESULT_OK && requestCode == 1 && data.getData()! = null) – Tasos
@Tasos Ja "Running" erscheint im Logcat, wenn ich ein Bild aus Gallary wähle und es zurückgibt zurück – Muddz
dann picasso in die Suche eingeben - alle Fehler ?? – Tasos