2015-05-20 1 views
1

Я использую библиотеку picasso для загрузки изображений с сервера. Я могу установить фоновое изображение в ImageView с помощью Picasso. Но я не мог установить фоновое изображение, используя то же самое. Я также попробовал другой метод, чтобы установить изображение в фоновый режим. Помогите мне.Как установить фоновое изображение на макет действия с помощью библиотеки Picasso в android

Мой код выглядит следующим образом:


Picasso.with(getApplicationContext()).load(" https://cms-assets.tutsplus.com/uploads/users/21/posts/19431/featured_image/CodeFeature.jpg ").into(new Target() {

@Override public void onPrepareLoad(Drawable arg0) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "Start Loading", Toast.LENGTH_SHORT).show(); } @Override public void onBitmapLoaded(Bitmap bitmap, LoadedFrom arg1) { // TODO Auto-generated method stub loginLayout.setBackground(new BitmapDrawable(getApplicationContext().getResources(), bitmap)); } @Override public void onBitmapFailed(Drawable arg0) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "Failed Loading", Toast.LENGTH_SHORT).show(); } });

ответ

1

Попробуйте использовать setBackgroundDrawable вместо setBackground

@Override 
    public void onBitmapLoaded(Bitmap bitmap, LoadedFrom arg1) { 
     // TODO Auto-generated method stub 
     loginLayout.setBackgroundDrawable(new BitmapDrawable(getApplicationContext().getResources(), bitmap)); 
    } 
0

Попробуйте использовать Target

Target target = new Target() { 
     @Override 
     public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
       activityLayout.setBackgroundDrawable(new BitmapDrawable(context.getResources(), bitmap)); 
      } 
     } 

     @Override 
     public void onBitmapFailed(final Drawable errorDrawable) { 
     } 

     @Override 
     public void onPrepareLoad(final Drawable placeHolderDrawable) { 
     } 
    }; 
    Picasso.with(getActivity()).load(url).into(target);