9
votes

Android: Non affiché ImageView avec UIL et TouchImageView

J'essaie d'implémenter des images de chargement à partir d'un URL avec Universal image loader et zoom avec touchImageView MIKE MIKE ORTIZ . Mais lorsque vous essayez d'afficher l'image, Black Screen est affiché. J'ai vérifié que les URL sont correctes. Je suis si je vois un TextView là-bas ...

Qu'est-ce que je fais mal?

imagepageractivité.java xxx

activité_full_screen.xml xxx

ampliar_imagen.xml xxx

edit

si je modifie TouchImageView by ImageView Il affiche l'image


1 commentaires

Avez-vous eu une solution en ce moment? S'il vous plaît partagez-le, je me rencontre aussi sur le problème ci-dessus


5 Réponses :


0
votes

Vous pouvez modifier le suivre, il est exécuté dans Tab2 mais autre périphérique n'est pas, je ne sais pas pourquoi

ImageLoader.getInstance().displayImage(urlDownload, mImageView, new ImageLoadingListener() {

            @Override
            public void onLoadingStarted(String imageUri, View view) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                // TODO Auto-generated method stub
                Log.v(TAG, "Bitmap What "+loadedImage.getWidth()+ " "+loadedImage.getHeight());


            }

            @Override
            public void onLoadingCancelled(String imageUri, View view) {
                // TODO Auto-generated method stub

            }
        });


0 commentaires

14
votes

J'ai également rencontré ce problème, j'ai trouvé qu'il est lié à la visibilité Progressbar S peut être utilisée pour le résoudre.

  • dans OnloadingStarted () , ajoutez vue.setvisibilité (vue.gone)
  • in onloadingcomplete () , ajoutez vue.setVisibilité (vue.visible)

    code: xxx


2 commentaires

Merci cher @cwc tu as sauvé ma journée.


Le problème est corrigé, mais comment est-il lié? m confus



9
votes

J'ai eu le même problème. J'ai résolu temporairement le problème en réinitialisant le zoom.

touchImage.setZoom(1);


1 commentaires

Votre solution temporaire a sauvé ma vie



5
votes

Si défini imageView bitmap async, j'ai trouvé matrix is ​​{0,0,0} {0,0,0} {0,0,1} {0,0,1}, de sorte que l'image ne peut pas être affichée .. Lorsque l'imageView ait une nullable dessinable fini. Mesurer à la première fois, touchImageView.viewwidth code> et TouchImageView.viewHeight code> est 0 .Mais lorsque vous SetImageBitmap à l'aide d'un! Null Bitmap, l'imageView ne peut pas être mesurée à nouveau. TouchImageView .ViewWidth code> est 0 à ce moment-là.Se code suivant.

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    Drawable drawable = getDrawable();
//        if (drawable == null || drawable.getIntrinsicWidth() == 0 || drawable.getIntrinsicHeight()    == 0) {
////            setMeasuredDimension(0, 0);
//          
//          super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//          return;
//        }

    int drawableWidth = drawable == null ? 0 : drawable.getIntrinsicWidth();
    int drawableHeight =  drawable == null ? 0 : drawable.getIntrinsicHeight();
    int widthSize = MeasureSpec.getSize(widthMeasureSpec);
    int widthMode = MeasureSpec.getMode(widthMeasureSpec);
    int heightSize = MeasureSpec.getSize(heightMeasureSpec);
    int heightMode = MeasureSpec.getMode(heightMeasureSpec);
    viewWidth = setViewSize(widthMode, widthSize, drawableWidth);
    viewHeight = setViewSize(heightMode, heightSize, drawableHeight);

    //
    // Set view dimensions
    //
    setMeasuredDimension(viewWidth, viewHeight);

    //
    // Fit content within view
    //
    fitImageToView();
}


0 commentaires

1
votes

Même problème que je faisais face. J'ai résolu le problème en réglant Zoom 0.99F comme suit: - imageview.setzoom (0.99F);

où imageview fait référence à TouchImageView. Je faisais face à ce problème dans Imageloader, alors je viens de mettre la ligne ci-dessus dans OnloadingCompletePlete . Vous pouvez également mettre la même ligne avant de charger l'URL de l'image sur Glide ou ImageLoader mais mieux de le mettre après Chargement complet . Profitez:)


0 commentaires