Есть замечательный класс
BitmapFactory
В нем есть методы для получения Bitmap и из массива, и из файла, и даже из InputStream.
Из Bitmap легким движением руки получаем Drawable:
Drawable drawable = new BitmapDrawable(context.getResources(), bitmap);
Кстати, в случае InputStream не обязательно даже вспоминать про BitmapFactory, есть конструктор BitmapDrawable, принимающий в себя InputStream.
Читаешь файлы из zip-архива на первый взгляд правильно. Только вторую твою функцию можно будет уменьшить, учитывая, что не обязательно считывать картинку в массив байтов, а достаточно использовать InputStream.
А вообще, по поводу использования zip-архивов в качестве ассетов - я бы посоветовал перестать наркоманить и больше так не делать. Ты не забыл, что apk-файл - это тоже zip-архив?