 |
JAVA Micro Edition Низкоуровневое программирование мобильных телефонов. |
14.08.2008, 09:53
|
#31
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 638 пользователей)
|
Ответ: Хранение картинок в классах
|
(Offline)
|
|
14.08.2008, 10:35
|
#32
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
14.08.2008, 15:01
|
#33
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Чтение из ресурса делается примерно так:
import javax.microedition.io.*;
import java.io.*;
public class ResRead {
public ResRead() {
}
public byte[] getResBytes(String res){
InputStream in = MyMIDlet.instance.getClass().getResourceAsStream(res);
byte[] b = null;
try {
in.read(b);
in.close();
}
catch (Exception ex) {}
return b;
}
}
Функция getResBytes возвращает массив байт ресурса res.
Здесь - MyMIDlet - главный класс мидлета,
instance - экземпляр главного класса.
P.S. на счет bsprite - явно нестандартный формат. Единственно возможный вариант - попытаться расковырять java - код, но это будет сложно, т.к. мидлет обработан обфускатором.
|
(Offline)
|
|
15.08.2008, 00:02
|
#34
|
Разработчик
Регистрация: 06.04.2008
Сообщений: 541
Написано 196 полезных сообщений (для 638 пользователей)
|
Ответ: Хранение картинок в классах
Вот в этой игрушке, по-моему, картинки лежат в классах.
Последний раз редактировалось Romanzes, 15.08.2008 в 11:50.
|
(Offline)
|
|
15.08.2008, 01:18
|
#35
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Сообщение от Romanzes
Вот в этой игрушке, по-моему, картинки лежат в классах.
|
Картинки там, похоже, лежат именно в файлах .basprite, ну и пара png-шек есть.
|
(Offline)
|
|
15.08.2008, 06:16
|
#36
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
ViNT, всё компилится, но мидлет повисает при запуске с белым экраном. Картинка не рисуется...
- - -
Убрал эту строку:
G.drawImage(Image.createImage(img,0,img.length),10 ,10,G.LEFT|G.TOP);
мидлет выполняется, не повисает. Что у меня в ней не так? img - это массив байт, который возвращается твоей функцией.
- - -
Эх... Написал так:
if(img!=null){
G.drawImage(Image.createImage(img,0,img.length),10,10,G.LEFT|G.TOP);
}
Мидлет выполняется, но картинку не рисует. Значит срабатывает исключение в твоей функции. Видимо, это:
in.read(img);
по какой-то причине не работает... В качестве ресурса пытаюсь открыть иконку "/icon.png", которая лежит в jar'е... В чём проблема - ума не приложу...
- - -
СДЕЛАЛ!!! Yahoo!!!
После строки
byte[] b = null;
добавил
b = new byte[284];
284 - это вес иконки =)
Только вот вопрос... А если я наперёд не знаю, сколько весит файл, то как тогда делать?
- - -
Как сделать байтовый массив с заполнением?
byte end[] = {0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82};
не катит... Как я понял, пишет, что я пытаюсь в байтовый массив занести числовые значения. гг. А как тогда байты представлять?
Последний раз редактировалось Phantom, 15.08.2008 в 08:34.
|
(Offline)
|
|
15.08.2008, 14:29
|
#37
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Да забыл инициализировать byte[] b.
А делается это так:
public static byte[] getResBytes(String res){
InputStream in=Main.instance.getClass().getResourceAsStream(res);
byte[] b=null;
try{
b =new byte[in.available()];//Инициализация - забыл
}catch(Exception e){}
try {
in.read(b);
in.close();
}
catch (Exception ex) {/*Main.quitApp();*/}
return b;
}
На счет массива - синтаксически вроде все правильно, но матерится на значения 0xae и 0x82. Попробуй вместо них написать (byte)0xae и (byte)0x82. У меня так скомпилилось.
|
(Offline)
|
|
16.08.2008, 13:51
|
#38
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
Уф... Так. Всем спасибо =) Чуть позже, как доделаю, покажу, что получилось. Я тут больше суток тупо сидел и не мог найти ошибку в нескольких строках кода. Всё компилируется, но работает не так, как надо. В итоге, только что понял в чём была ошибка. Я решил хранить ресурсы (картинки) в файле с расширением .class, типа для большего запутывания потенциального взломщика моей мега программы =) Но картинка из всего этого не собиралась! Чуть монитор в окно не выбросил от разочарования в себе... Потом... Только что то есть... Поменял расширение с class на png И ВСЁ ЗАРАБОТАЛО!
Такой вопрос: а в джаве что, имеет какое-то значение расширение файла??? Как я понял, его просто не считывало в байтовый массив! ПОЧЕМУ? Блин, я сутки искал ошибку там, где её не было... Сейчас ещё поиграюсь с расширениями, png не хочу оставлять.
|
(Offline)
|
|
16.08.2008, 15:03
|
#39
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Хранение картинок в классах
Расширение значения не имеет, но может именно на использование .class JVM не дает разрешения.
|
(Offline)
|
|
21.06.2012, 18:47
|
#40
|
Нуждающийся
Регистрация: 14.06.2012
Сообщений: 66
Написано 6 полезных сообщений (для 10 пользователей)
|
Ответ: Хранение картинок в классах
Phantom , Интересует нарытое))?? ХДЕЕЕЕ?????
|
(Offline)
|
|
22.06.2012, 01:40
|
#41
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Хранение картинок в классах
Phantom , Интересует нарытое))?? ХДЕЕЕЕ?????
|
Идея была херня, забил давно на неё.
Тред вообще можно снести, чтобы мне не приходилось краснеть. 
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:56.
|