Вы можете загружать изображения динамически как:
BitmapFactory.Options options = new BitmapFactory.Options();
options.outWidth= IMAGE_WIDTH;
options.outHeight= IMAGE_HEIGHT;
Bitmap bm = BitmapFactory.decodeFile("icon image file path", options);
imageView.setImageBitmap(bm);
В вашем случае вы можете загрузить все необходимые значки на SD-карту мобильного телефона. Так что в будущем, если подкатегории увеличатся, вы можете загрузить новые иконки для них и динамически отображать их в пользовательском интерфейсе.