【发布时间】:2014-02-25 16:10:48
【问题描述】:
我正在使用 Universal ImageLoader 从服务器下载大图像并在封面流中显示它们。我在这里面临的问题是我无法为我的图像设置自定义尺寸。它只需要整个屏幕。例如,我正在下载大小为 500 x 1200 的图像 - 我想显示大小为 300 x 300 的图像。但它需要完全显示。请帮我解决这个问题,因为我被困了超过 3 天。谢谢。
代码
public class HomeCoverFlow {
Context mContext;
public CoverFlow coverFlow;
ImageAdapter coverImageAdapter;
ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options;
/** Called when the activity is first created. */
public HomeCoverFlow(Context context)
{
mContext = context;
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.flyer_placeholder)
.showImageForEmptyUri(R.drawable.flyer_placeholder)
.imageScaleType(ImageScaleType.EXACTLY)
.cacheInMemory(true)
.build();
coverFlow = new CoverFlow(context);
coverImageAdapter = new ImageAdapter(mContext);
coverFlow.setAdapter(coverImageAdapter);
coverFlow.setSpacing(-25);
coverFlow.setSelection(2, true);
coverFlow.setAnimationDuration(1000);
coverFlow.setGravity(Gravity.CENTER_VERTICAL);
// HEIGHT
coverImageAdapter.coverflowHeight = 100; //display.getHeight() / 3;
//WIDTH
coverImageAdapter.coverflowWidth = 100;// display.getWidth() / 2;
}
adapter中创建item视图的方法,这里我使用imageloader来下载图片并显示
public View getView(int position, View convertView, ViewGroup parent) {
FeaturedFlyerData data = (FeaturedFlyerData) getItem(position);
if(data.flyerImage == null)
{
setNewImage(position);
}
//see text or image
if(data.displayImage)
{
data.flyerImage.setBackgroundColor(Color.BLACK);
imageLoader.displayImage(data.url, data.flyerImage, options, null);
}
return data.flyerImage;
}
void setNewImage(int position)
{
FeaturedFlyerData data = (FeaturedFlyerData) getItem(position);
data.flyerImage = new ImageView(mContext);
data.flyerImage.layout(0, 10, 200,350);
data.flyerImage.setScaleType(ScaleType.CENTER_INSIDE);
data.flyerImage.setTag(Integer.toString(position));
data.flyerImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imageClicked(Integer.parseInt(v.getTag().toString()));
}
});
}
}
我不知道这里还提供什么代码 sn-p。如果您需要任何进一步的说明,请发表评论。谢谢。
【问题讨论】:
-
data.flyerImage 是一个 ImageView 对吗?您是否尝试设置该 ImageView 的 layout_height 和 layout_width?
-
@GlaucoNeves 是的,它是一个图像视图。我已经设置了“setNewImage”方法。请参阅我的编辑。我做得对吗?
-
试试 data.flyerImage.getLayoutParams().height = 100; data.flyerImage.getLayoutParams().width = 100;
-
@GlaucoNeves 我得到
nullpointerexception使用它。可能它对图像视图无效。
标签: android image universal-image-loader coverflow