java如何将位图插入Gridview?
我正在创建一个益智游戏,我想有一个GridView,其中包含我的益智拼图的图像
我寻找了很多解决方案,但都不适用于我的情况。我看不到我的gridView
我使用ImageAdapter类将我的拼图块位图放到GridView中,我有一个ArrayList,其中包含我的所有位图
在我的主课上,我有这个
GridView gridView = findViewById(R.id.gridPiece);
gridView.setAdapter(new GridViewAdapter(PuzzleActivity.this, R.layout.row_grid, images));
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
System.out.println("WORKING");
}
});
我有我的GridViewAdapter类
@SuppressWarnings("ALL")
public class GridViewAdapter extends ArrayAdapter<Item> {
private Context mContext;
private int layoutResourceId;
private ArrayList<Item> images;
public GridViewAdapter(Context c, int layoutResourceId, ArrayList<Item> images) {
super(c, layoutResourceId, images);
mContext = c;
this.layoutResourceId = layoutResourceId;
this.images = images;
}
@Override
public int getCount() {
return 0;
}
@Override
public Item getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
RecordHolder holder = null;
if (row == null) {
LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new RecordHolder();
holder.imageItem = (ImageView) row.findViewById(R.id.item_image);
row.setTag(holder);
} else {
holder = (RecordHolder) row.getTag();
}
Item item = images.get(position);
holder.imageItem.setImageBitmap(item.getImage());
return row;
}
static class RecordHolder {
TextView imageTitle;
ImageView imageItem;
}
}
我的网格视图
<GridView
安卓:id="@+id/gridPiece"
安卓:layout_width="200dp"
安卓:layout_height="match_parent"
安卓:layout_margin="5dp"
安卓:columnWidth="100dp"
安卓:drawSelectorOnTop="true"
安卓:horizontalSpacing="10dp"
安卓:numColumns="1"
安卓:paddingHorizontal="10dp"
安卓:paddingVertical="10dp"
安卓:stretchMode="columnWidth"
安卓:verticalSpacing="5dp"
tools:ignore="MissingConstraints,UnusedAttribute"
tools:layout_editor_absoluteY="0dp" />
以及gridView中的每个图像
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:orientation="vertical"
安卓:padding="5dp" >
<ImageView
安卓:id="@+id/item_image"
安卓:layout_width="100dp"
安卓:layout_height="100dp"
安卓:layout_marginRight="10dp"
tools:ignore="ContentDescription,RtlHardcoded">
</ImageView>
</LinearLayout>
如果有人能帮助我,我将非常感激,谢谢
# 1 楼答案
与getCount返回零不同,您应该像下面这样返回图像的计数:
在getItem()函数中,应该返回项而不是null: