我使用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有关的问题吗?任何帮助都会很明显。感谢。
答案 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);
}
});