gpt4 book ai didi

android - 使用网络服务和 picasso 加载图像,如何添加采样大小?

转载 作者:行者123 更新时间:2023-11-29 14:37:39 25 4
gpt4 key购买 nike

我正在使用 Picasso 库在 ViewPager 中加载和显示图像。正在加载的图像具有高分辨率,我想为它们添加一个内采样大小。但是,我不知道应该如何或在何处添加此采样大小属性。我的 ViewPagerAdapter.java 类具有以下内容。

@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv_page_image;
inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.viewpager_item, container,false);
iv_page_image = (ImageView) itemView.findViewById(R.id.iv_page_image);
String path = pageList.get(position).getPageImage();
path = path.replaceAll(" ", "%20");
if (path != null && !(path.equalsIgnoreCase(""))) {
Picasso.with(mContext).load(path)
.placeholder(R.drawable.placeholder_empty)
.into(iv_page_image, new Callback() {
@Override
public void onSuccess() {

}
@Override
public void onError() {
}
});
}
((ViewPager) container).addView(itemView);
return itemView;
}

我想在图片中添加如下内容

private static int calculateInSampleSize(BitmapFactory.Options options,
int reqWidth, int reqHeight) {

final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;

if (height > reqHeight || width > reqWidth) {

// Calculate ratios of height and width to requested height and
// width
final int heightRatio = Math.round((float) height
/ (float) reqHeight);
final int widthRatio = Math.round((float) width / (float) reqWidth);

// Choose the smallest ratio as inSampleSize value, this will
// guarantee
// a final image with both dimensions larger than or equal to the
// requested height and width.
inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
}
return inSampleSize;
}

最佳答案

只需将 .fit() 添加到您对 Picasso 的调用,它就会自动计算出适当的 inSampleSize 以在解码图像时使用。

您可能还想使用 .centerInside().centerCrop() 来确保自动调整大小时图像的纵横比不会改变。

关于android - 使用网络服务和 picasso 加载图像,如何添加采样大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26518116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com