【发布时间】:2014-12-02 05:44:55
【问题描述】:
我一直在尝试实现一个 ListView,它根据行使用 2 个单独的布局。第一个布局有 1 个 imageview,第二个布局有 2 个 imageview。
我想这样做,以便我可以让 ListView 中的每一行包含交替布局,但也能够用完 ArrayList bitmapArray 中的内容;
例如,第一行将包含前 2 个位图图像,第二行将包含 1 个大位图图像,第三行将是 2 个并排的位图图像......等等。
更新
我已经让它工作了一些,但问题仍然存在于图像没有正确分离的地方。它只是重复使用总共 4 张不同的图片,并且奇怪地将它们分开......我将在下面尝试说明
每个数字代表BitmapArray中的一张图片(0-19共20张图片)
需要
[ 0 ]
[ 1 , 2 ]
[ 3 ]
[ 4, 5 ]
[ 6 ]
[ 7, 8 ]
[ 9 ]
[10 , 11]
[ 12 ]
[13, 14]
[ 15 ]
[16, 17]
[ 18 ]
[ 19, --]
德戈雷姆的更新模式
[ 0 ]
[ 1 , 2 ]
[ 2 ]
[ 3 , 4 ]
REPEAT
**BitmapArray 中总共只存储了 20 张图像。我发现的另一个问题是,当我在后面的一行(比如 10)上按 OnItemClick 时,它会将我带到另一个位图放大的活动(如设计的那样)。奇怪的是,它将是一个完全不同的图像,一个可能对应于数组中的那个位置。 **
Here is the code that I have been working with.
public class FeedAdapter extends ArrayAdapter<Bitmap> {
private static final int TYPE_BIG_ITEM = 0;
private static final int TYPE_SMALL_ITEM = 1;
public FeedAdapter(Context context, ArrayList<Bitmap> bitmapArray) {
super(context, R.layout.feed_listview_big);
}
private class ViewHolder {
ImageView ivPictureSmallOne;
ImageView ivPictureSmallTwo;
ImageView ivPictureBig;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
return position % 2;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Bitmap bmp = getItem(position);
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
if (getItemViewType(position) == 0) {
convertView = inflater.inflate(R.layout.feed_listview_small,
null);
viewHolder.ivPictureSmallOne = (ImageView) convertView
.findViewById(R.id.ivSmall1);
viewHolder.ivPictureSmallTwo = (ImageView) convertView
.findViewById(R.id.ivSmall2);
viewHolder.ivPictureSmallOne.setImageBitmap(bmp);
viewHolder.ivPictureSmallTwo.setImageBitmap(getItem(position + 1));
} else {
convertView = inflater.inflate(R.layout.feed_listview_big,
null);
viewHolder.ivPictureBig = (ImageView) convertView
.findViewById(R.id.ivBig);
viewHolder.ivPictureBig.setImageBitmap(bmp);
}
}
// Return the completed view to render on screen
return convertView;
}
}
【问题讨论】:
-
您面临的问题是什么?
-
我刚刚更新了这个问题。我面临的问题是关于分离用于填充每一行的位图。行在 2 个单独的布局之间交替。
-
尝试查看回收视图
标签: java android listview android-listview bitmap