Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> картинка на эмуляторе грузится а на телефоне нет? картинка на эмуляторе грузится а на теле 
V
    Опции темы
Yugine
Дата 12.3.2006, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2006

Репутация: нет
Всего: нет



Эмулятор картинку грузит, а телефон нет. (телефон у меня Siemens CX70)?

гружу картинку так:

Image I1;

//........

try {
I1 = Image.createImage("/1.png");
}
catch (IOException ioe){}


пользуюсь Wirelles Toolkit 2.0

в WTK картинка лежит в папке res

если открываь jar архив, то она лежит сразу там, никуда не вложена.
PM MAIL   Вверх
W0LF
Дата 12.3.2006, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



а что значит "грузит"?
добавь в блок catch вывод на экран какого-нидь сообщения типа "can't load picture '1.png' ". Может картинка загружается, а при отображении какие-нидь проблемы возникают.


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Yugine
Дата 13.3.2006, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2006

Репутация: нет
Всего: нет



я так и делал. добавлял сообщение. на эмуляторе норм. а на телефоне оно вылазит
PM MAIL   Вверх
Dancer
Дата 13.3.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



а так пробовал?

Код

class MyClass extends MIDlet {

    Form form = new Form("My Form");
    Display disp = Display.getDisplay(this);
    InputStream input = getClass().getResourceAsStream("1.png");
    Image img;

//........

    try {
        img = Image.createImage(input);
        form.append("Image " + img + " created successfully");
        disp.setCurrent(form);
    } catch (Exception e){
         form.append("input = " + input + "\n");
         form.append("Can't create IMAGE");
         disp.setCurrent(new Alert("ERROR","Exception: "+e.toString, AlertType.ERROR), form);
    }

}



--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
W0LF
Дата 13.3.2006, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20




Код

img = Image.createImage(input, 0, input.length)
)
Так правильнее
Но вряд ли это поможет. Он не может найти файл. А как его считать, то уже другое дело.


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
Nemesis
Дата 14.3.2006, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 20.2.2005
Где: Москва

Репутация: 3
Всего: 5



Yugine приведи весь код, мало ли что написал... и каких размеров картинка вообще?
--------------------
PM MAIL   Вверх
Yugine
Дата 14.3.2006, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2006

Репутация: нет
Всего: нет



вот такой у меня код, проверки и т.п. я оттуда убрал, ну и переписал, как мне Dancer посоветовал:


import javax. microedition.lcdui.Canvas;
import javax. microedition.lcdui.Command;
import javax. microedition.lcdui.CommandListener;
import javax. microedition.lcdui.Display;
import javax. microedition.lcdui.Displayable;
import javax. microedition.lcdui.Graphics;
import javax. microedition.lcdui.Image;
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.game.*;
import java.io.IOException;
import java.io.*;

public class TryCanvas extends MIDlet{
MyCanvas C1;
public static TryCanvas midlet;


InputStream input = getClass().getResourceAsStream("/bear.png");
Image I1;

Display d;

public TryCanvas(){super(); midlet=this;}

public void destroyApp(boolean destroy)
{
C1 = null;
notifyDestroyed();
}

public void pauseApp(){}

public void startApp(){

C1 = new MyCanvas();
try {
I1 = Image.createImage(input);
}
catch (IOException ioe){}
d=Display.getDisplay(this);
d.setCurrent(C1);
}

}

class MyCanvas extends Canvas implements CommandListener{
int width;
int height;
Command exit = new Command("exit", Command.EXIT,1);

int x;
public MyCanvas(){
super();

width=getWidth();
height=getHeight();
addCommand(exit);
setCommandListener(this);
}


public void paint (Graphics g){
int cx = g.getClipX();
int cy = g.getClipY();
int ch = g.getClipHeight();
int cw = g.getClipWidth();
int color = g.getColor();
g.setColor(58, 162, 211);
g.fillRect(cx, cy, cw, ch);
//g.setColor(253, 251, 118);

g.drawImage(TryCanvas.midlet.I1, 0, 0, Graphics.TOP | Graphics.LEFT);

}
public void commandAction (Command c, Displayable d){
if (c==exit){TryCanvas.midlet.destroyApp(true);}
}

}



картинка в формате png имеет размер 30x90 точек



PM MAIL   Вверх
Nemesis
Дата 15.3.2006, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 20.2.2005
Где: Москва

Репутация: 3
Всего: 5



Понимаешь в чем может быть дело, ведь когда ты загружаешь изображение в image, то код дальше исполняется, и получается так, что ты вызываешь дальше d=Display.getDisplay(this);, а потом d.setCurrent(C1);. Когда происходит вызов d.setCurrent(C1);, тогда и происходит вызов метода paint (1 раз, потом просто идет простОй мидлета), который пытается вывести изображение, еще полностю не загрузившееся (это на эмуляторе картинки почти влет грузятся,а на телефоне все по-другому несколько). Это первое что бросилось мне в глаза. Могу посоветовать вынести процедуру загрузки картинки в конструктор TryCanvas(), но честно говоря несколько необычная структура программы, не в обиду будет сказано.

Скажи, а заливка срабатывает?

g.setColor(58, 162, 211);
g.fillRect(cx, cy, cw, ch);
--------------------
PM MAIL   Вверх
javastic
Дата 15.3.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Yugine,
M
javastic
Пользуйся подсветкой кода!!
.

Положи картинку в папку с сырцами, не клади в res, и первый вариант у тебя заработает.
Ты случаем не перенёс проект из WTK в некое IDE (или наоборот)?
Размер картинки какой?



--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Yugine
Дата 16.3.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2006

Репутация: нет
Всего: нет



картинку я положил уже везде и в паку с ресурсами и с исходником.

когда я делаю так как советовал dancer, у меня срабатывает NullPointer exception

когда делаю так как я написал в первом случае, тогда просто не загружается картинка.

to Nemesis: заливка срабатывает. загрузку изображения я поместил в конструктор канваса - не помогло.


может у кого-нить есть телефон siemens и уже писали для него чего-нибудь - киньте пожалуйста рабочий исходник или дайте ссылку
PM MAIL   Вверх
javastic
Дата 17.3.2006, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Yugine, скачай пример по этой ссылке Imager.rar и положи его в папку apps своего WTK, заупусти, а потом сообщи нам, отобразилась картинка или нет.
Пример рабочий.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Yugine
Дата 18.3.2006, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.3.2006

Репутация: нет
Всего: нет



Спасибо огромнейшее, проблема была в том, что у картинки расширение .PNG, а я написал маленькими png.
PM MAIL   Вверх
W0LF
Дата 18.3.2006, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



странно как-то... у меня была такая же проблема, но наоборот. нужно было использовать нижний регистр для расширения...


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0916 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.