TouchImageView变焦缩放到Picasso框架

时间:2014-09-16 13:36:13

标签: android android-imageview picasso touchimageview

我使用Universal Image Loader库加载一组图像和TouchImageView以允许缩放。我决定用毕加索取代Universal Image Loader。一切正常,但现在图像会缩放到比图像略大的帧。

@Override
    public Object instantiateItem(ViewGroup view, int position) {
        View imageLayout = inflater.inflate(R.layout.item_pager_image, view, false);
        assert imageLayout != null;
        TouchImageView imageView = (TouchImageView) imageLayout.findViewById(R.id.image);
        final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading);
        spinner.setVisibility(View.INVISIBLE);
        Picasso.with(getApplicationContext()).setIndicatorsEnabled(false);
        Picasso.with(getApplicationContext()).load(images[position]).into(imageView,new Callback() {

            @Override
            public void onSuccess() {
                spinner.setVisibility(View.GONE);        
            }

            @Override
            public void onError() {

            }
        });
        view.addView(imageLayout, 0);
        return imageLayout;
为了这个,我几个小时后一直在打扰我。这是TouchImageView与Picasso有关的问题吗?任何帮助都会很明显。感谢。

3 个答案:

答案 0 :(得分:5)

Mahram Foadi发布了here一个很适合我的解决方案:

Picasso.with(context).load (someUri).into(new Target () {
   @Override
    public void onBitmapLoaded (final Bitmap bitmap,
        final Picasso.LoadedFrom loadedFrom) {
        someTouchImageView.setImageBitmap (bitmap);
    }

   @Override
    public void onBitmapFailed (final Drawable drawable) {
       Log.d(TAG, "Failed");
    }

   @Override
   public void onPrepareLoad (final Drawable drawable) {
        someTouchImageView.setImageDrawable (drawable);
   }
});

希望这有助于像我们这样的其他人将TouchImageView与Picasso一起使用;)

答案 1 :(得分:0)

当我将图像宽度和高度从wrap_content设置为fill_parent时,我发现整个问题已得到解决。

答案 2 :(得分:0)

如果你使用的是Glide。 Glide在加载时比毕加索更快,在内存消耗方面更便宜

Glide.with(context).load(url).asBitmap().into(new SimpleTarget<Bitmap>() {
    @Override
    public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
        someTouchImageView.setImageBitmap(resource);
    }
});