cómo crear archivos java zip con un límite de tamaño de archivo máximo

Necesito escribir un algoritmo en java (para una aplicación de Android) para leer una carpeta que contiene más carpetas y cada una de las que contienen imágenes y archivos de audio, por lo que la estructura es la siguiente:mainDir/categorySubfolder/myFile1.jpg

Mi problema es que necesito limitar el tamaño del archivo a 16 mb y en el tiempo de ejecución, crear tantos archivos como sea necesario para contener todos mis archivos desde mi principalmainDir carpeta.

Intenté varios ejemplos de la red y leí la documentación de java, pero no logro entenderlo y ponerlo todo junto como lo necesito. ¿Alguien ha hecho esto antes o tiene un enlace o un ejemplo para mí?

Resolví la lectura de los archivos con un método recursivo, pero no puedo escribir la lógica para la creación de zip.

Estoy abierto a sugerencias o mejor ejemplo de trabajo.

Respuestas a la pregunta(3)

Su respuesta a la pregunta