自定义对话框与 imageview 到 gridview

Custom dialog with imageview into gridview

我有一个自定义对话框,我想显示 10 个图标。 我有这个代码

    private void showAlertDialog() {

    GridView gridView = new GridView(this);

    List<Integer> mList = new ArrayList<Integer>();

    ArrayList<Integer> myImageList = new ArrayList<>();
    for (int i = 1; i < 10; i++) {

         mList.add(i);
    }

    gridView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, mList));
    gridView.setNumColumns(3);
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            // do something here
        }
    });

    // Set grid view to alertDialog
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setView(gridView);
    builder.setTitle("Select icon");
    builder.show();

}

如何制作图标数组?此刻我只能看到 1,2,3,4,5.... 有谁可以帮助我吗? 谢谢

创建自定义 ArrayAdapter

    public class ImageAdapter extends ArrayAdapter {
    private Context mContext;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    // create a new ImageView for each item referenced by the Adapter
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            // if it's not recycled, initialize some attributes
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
        } else {
            imageView = (ImageView) convertView;
        }

        imageView.setImageResource(mThumbIds[position]);
        return imageView;
    }

    // references to our images
    private Integer[] mThumbIds = {
            R.drawable.sample_2, R.drawable.sample_3,
            R.drawable.sample_4, R.drawable.sample_5,
    };
}

替换 mThumbIds 您的图标 ID 中的 ID。之后,将适配器设置为 GridView:

gridview.setAdapter(new ImageAdapter(this));

调整图标大小:

//Width and height in pixels
int width = 150;
int height = 150; 
imageView.setLayoutParams(new GridView.LayoutParams(width, height));

您需要为 Gridview 创建一个视图适配器,然后使用它设置您的图像。你可以用这个作为参考 link