Показать сообщение отдельно
Старый 03.11.2013, 14:22   #2
barsunduk
ПроЭктировщик
 
Аватар для barsunduk
 
Регистрация: 09.05.2010
Адрес: рф ро шахты
Сообщений: 177
Написано 66 полезных сообщений
(для 271 пользователей)
Ответ: загрузка картинки из архива сразу в Drawable

с текстовым файлом проще, конечно.
а вот что с картинками и музыкой делать прямо не знаю. ((( как bytearray превратить в картинку типа png (с alpha) или jpg?

/* zipfilename - имя файла архива, filename - файл, который нужно найти в архиве *
     * на выходе - массив байтов, содержащая извлеченный файл  */
    
public static byte[] zipExtract(String zipfilenameString filename) {
        
// буфер для строки
        
byte[] buf null;
        try {
            
// поток архива
            
ZipInputStream zipinputstream null;
            
// вхождения в архив
            
ZipEntry zipentry;
            
// создаем поток архива, параметр - свежесозданный поток файла архива
            
zipinputstream = new ZipInputStream(new FileInputStream(zipfilename));
            
// получаем очередное вхождение в архив
            
zipentry zipinputstream.getNextEntry();
            
// пока все вхождения в архив не кончатся
            
while (zipentry != null) { 
                
// получаем имя вхождения (запакованного файла или папки)
                
String entryName zipentry.getName();
                
// если это искомый файл
                
if (entryName == filename) {
                    
// получаем размер найденного файла
                    
int entrysize = (int)zipentry.getSize();
                    
// создаем буфер для чтения из архива
                    
buf = new byte[entrysize];
                    
// читаем найденный файл из архива в буфер
                    
zipinputstream.read(buf0entrysize);
                    
// закрываем вхождение
                    
zipinputstream.closeEntry();
                    
// заканчиваем поиск
                    
break;
                }
                
// получаем очередное вхождение в архив
                
zipentry zipinputstream.getNextEntry();
            }
            
// закрываем поток архива
            
zipinputstream.close();
        } catch (
Exception e) {
            
e.printStackTrace();
        }
        
// возвращаем буфер
        
return buf;
    }
    
    
/* zipfilename - имя файла архива, filename - файл, который нужно найти в архиве *
     * на выходе - строка, содержащая извлеченный файл  */
    
public static String zipExtractTextfile(String zipfilenameString filename) {
        return 
zipExtract(zipfilenamefilename).toString();
    } 
__________________
to be or not to be - it's not a question!
2b or not 2b = ff
(Offline)
 
Ответить с цитированием