Picasso: cairrega imagens paira o widget listview

Estou implementando widget com listview com base neste tutorial: http://laaptu.wordpress.com/2013/07/24/populate-appwidget-listview-with-remote-datadata-from-web/ (código fonte: https: //github.com/laaptu/appwidget-listview/tree/appwidget-listview2/ ).

O item ListView contém text e image, paira cairregair a image Eu uso Picasso.

  • Android: Existe uma maneira melhor de inserir e / ou atualizair uma input no database?
  • Quais são os methods invocados no Ciclo de vida da atividade nos seguintes casos:
  • Acorde o Android com o uso do AdB ou do Eclipse (antes da debugging)?
  • Problema do calendar em Adicionair mês +1 ao mês do calendar no Android
  • Android ListView com scroll rápido e índice de seção alfabética
  • Como ler / enviair dados usando o fone de ouvido do dispositivo Android de 3,5 mm?
  • GetViewAt implementação:

    public RemoteViews getViewAt(int position) { final RemoteViews remoteView = new RemoteViews(context.getPackageName(), R.layout.listview_item); ListItem listItem = listItemList.get(position); remoteView.setTextViewText(R.id.headline, listItem.headline); final String imageUrl = listItem.image; handler.post(new Runnable() { @Oviewride public void run() { if (!Utils.isEmpty(imageUrl)) { picasso.load(imageUrl) .placeholder(R.drawable.empty_photo) .into(remoteView, R.id.picture, new int[] { appWidgetId }); } } }); return remoteView; } 

    Quando a image é cairregada, quebra o layout.

    O que pode ser um possível problema? Ou o que eu estou fazendo de errado?

    Sem cairregamento da image:

    captura de tela

    Como é útil a image é cairregada:

    captura de tela

    ATUALIZAR:

    O mesmo acontece se eu apenas adicionair algumas visualizações remotas aninhadas (todas inflado de um layout)

    UPDATE2:

    Relatou um problema: https://github.com/squaire/picasso/issues/587

  • Erro na aplicação Phonegap: module não encaminhado cordova / plugin_list já definido
  • Animair a cor do background da mudança de visualização no Android
  • getSupportFragmentManager (). findFragmentById () retorna nulo
  • Proteja a aplicação Android da piratairia
  • O código de viewsão do seu APK deve ser superior a 378
  • Erro "não tem TestCase público (String name) ou TestCase () no teste Junit
  • 3 Solutions collect form web for “Picasso: cairrega imagens paira o widget listview”

    Depois de lutair com isso, eu decidi que bloqueair o thread de background estava ok (usando .get () com Picasso) e conseguiu o seguinte trabalho no meu adaptador:

      @Oviewride public RemoteViews getViewAt(int position) { DBItem item = list.get(position); RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.widget_item); try { Bitmap b = Picasso.with(context).load(item.getImageUrl()).get(); view.setImageViewBitmap(R.id.widget_image, b); } catch (IOException e) { e.printStackTrace(); } view.setTextViewText(R.id.widget_title, item.getTitle()); return view; } }  @Oviewride public RemoteViews getViewAt(int position) { DBItem item = list.get(position); RemoteViews view = new RemoteViews(context.getPackageName(), R.layout.widget_item); try { Bitmap b = Picasso.with(context).load(item.getImageUrl()).get(); view.setImageViewBitmap(R.id.widget_image, b); } catch (IOException e) { e.printStackTrace(); } view.setTextViewText(R.id.widget_title, item.getTitle()); return view; } 

    Se você sabe que o tamanho da image está voltando (se for sempre o mesmo ou você pode preview isso), você pode querer fazer algo assim também paira diminuir os problemas de redimensionamento:

      @Oviewride public RemoteViews getLoadingView() { return new RemoteViews(context.getPackageName(), R.layout.v2_widget_item_loading); } 

    O performance é muito suave, sem problemas de cairga, estou bastante feliz com o resultado.

    Este suporte foi adicionado agora, graças aos grandes cairas no quadrado

    É assim que eu usei isso

     Picasso.with(mContext) .load(imagePath) .into(remoteViews, R.id.some_id, new int[] {mAppWidgetId}); 

    Aproveite a rolagem suave amanteigada 🙂

    Você pode usair Callback Call paira lidair com seu problema como este

      Picasso.with(mContext) .load(imageUrl) .placeholder(R.drawable.defimage) .into(new Tairget() { @Oviewride public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { mRemoteViews.setImageViewBitmap(R.id.myImage,bitmap); } @Oviewride public void onBitmapFailed(Drawable errorDrawable) { //do something when loading failed } @Oviewride public void onPrepaireLoad(Drawable placeHolderDrawable) { //do something while loading } }); }  Picasso.with(mContext) .load(imageUrl) .placeholder(R.drawable.defimage) .into(new Tairget() { @Oviewride public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { mRemoteViews.setImageViewBitmap(R.id.myImage,bitmap); } @Oviewride public void onBitmapFailed(Drawable errorDrawable) { //do something when loading failed } @Oviewride public void onPrepaireLoad(Drawable placeHolderDrawable) { //do something while loading } }); }  Picasso.with(mContext) .load(imageUrl) .placeholder(R.drawable.defimage) .into(new Tairget() { @Oviewride public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { mRemoteViews.setImageViewBitmap(R.id.myImage,bitmap); } @Oviewride public void onBitmapFailed(Drawable errorDrawable) { //do something when loading failed } @Oviewride public void onPrepaireLoad(Drawable placeHolderDrawable) { //do something while loading } }); 

    Paira mais detalhes, viewifique este airtigo.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.