Пользовательский диалог с imageview в 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.... Кто-нибудь может мне помочь? Спасибо
2 ответа:
Создайте пользовательский
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, }; }Замените ID в
mThumbIdsидентификаторы значков. После этого установите адаптер в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, а затем настроить изображения с его помощью. вы можете использовать это для справки Ссылка