В моем приложении пользователь может выбрать изображение из галереи и установить его на фон RelativeLayout
. Но изображение никогда не устанавливается сразу в фоновом режиме в моем методе onActivityResult(), как предполагалось, когда я загружаю растровое изображение выбранного изображения с помощью picasso в мое представление.setBackground() in onActivityResult никогда не называется
Вот screenrecord видео проблемы: https://www.youtube.com/watch?v=jABnheTV0IU
Но когда этот метод в моем RecyclerView адаптер называется изображение устанавливается в качестве фона к RelativeLayout сразу:
@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) {
}
});
onActivityResult в мой класс MainActivity.
@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) {
}
});
}
}
Только под здесь (если (ResultCode = = RESULT_OK && requestCode == 1 && data.getData()! = Null) {) add (Log.i («Запуск», «Выполнение»);) и в виде поиска в Logcat (Running) - вы видите Running когда вы возвращаетесь к основной деятельности? если вы не ошибаетесь (если (resultCode == RESULT_OK && requestCode == 1 && data.getData()! = null) – Tasos
@Tasos Да «Запуск» появляется в логарифме, когда я выбираю изображение из галереи, и оно возвращается назад – Muddz
затем введите picasso в поиск - любые ошибки – Tasos