Alguém me recomenda um material sobre Canvas? Rich Design?
primeiro de tudo adote este livro
http://www.guj.com.br/posts/list/11392.java
Em uma pesquisa rapida achei algumas apostilas, tutoriais e até exemplo de código…
http://www.google.com.br/search?hl=pt-BR&q=apostila+j2me&btnG=Pesquisar&meta=lr%3Dlang_pt
http://pt.wikibooks.org/wiki/J2ME/Lições/Canvas
se não for suficiente posta ae que eu posso postar uns exemplos de código de canvas que eu tenho aqui…
[]'s
Pois é, cara, estou querendo comprar o livro, mas por enquanto não está sobrando tempo ($$), hehe.
Quanto ao Google, sim, muito bom. Consultei-o diversas vezes a procura de material sobre Canvas. Apostilas de JME têm aos montes, mas nem um décimo delas abordam design de nível 1 (Canvas).
vou postar um codigo bem simples criando uma linha, string… ve se te ajuda
[code]import javax.microedition.lcdui.*;
public class TelaJogo extends Canvas{
private int largura;
private int altura;
private Font fonte;
private Font fonte2;
/** Creates a new instance of TelaJogo */
public TelaJogo() {
largura = getWidth();
altura = getHeight();
fonte = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE);
fonte2 = Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_ITALIC, Font.SIZE_SMALL);
}
protected void paint(Graphics g) {
//retângulo: fill é preenchido e draw somente borda
g.setColor(255, 255, 255);
g.fillRect(0, 0, largura, altura);
/*
g.setColor(60, 60, 60);
g.drawRect(10, 10, 50, 20);
g.setColor(0, 0, 255);
g.fillRoundRect(50, 70, 60, 30, 10, 10);
//linha
g.setStrokeStyle(Graphics.SOLID);
g.drawLine(0, 0, largura, altura);
g.setStrokeStyle(Graphics.DOTTED);
g.drawLine(largura, 0, 0, altura);
//Arcos
g.setColor(134, 200, 45);
g.fillArc(largura/2-15, altura/2-15, 30, 30, 5, 360);*/
//strings
g.setColor(134, 200, 45);
g.setFont(fonte2);
g.drawString("Vidas: 5", largura/2, altura/2-fonte2.getHeight()/2, Graphics.HCENTER|Graphics.TOP);
g.setFont(fonte);
g.drawString("J2ME: MIDP e CLDC", 0, 0, Graphics.LEFT|Graphics.TOP);
}
}[/code]
[]'s
Opa! Com certeza já ajuda.
Já tenho algo em que me basear para começar uns testes. Pelo que percebi (esse esquema de acessar o objeto Graphics para desenhar na tela) é algo parecido com o Swing quando é necessário desenhar figuras e String’s na tela neh.
Cara, só mais uma coisa: tu sabes se existe alguma API que ajude a criar design’s ricos?
Por exemplo: costumo instalar muitas aplicações JavaME no meu celular. A grande maioria delas têm design rico, como o Opera Mini, o mig33 e o GmailMobileApp. Todos eles implementam na mão mesmo cada tela em Canvas?
Ou pelo menos existe uma arquitetura básica que deve-se seguir para reaproveitar o Canvas em uma aplicação?
Exemplo: na web, o mais comum é o desenvolvedor usar um provedor de template para gerar a base das páginas dinamicamente. Além disso usam-se imagens, banner’s e CSS para padronizar o “site”.
No desktop acredito que o mais comum seja a criação de um JFrame que manipula diversos JPanel’s, ou vários JFrame’s com vários JPanel’s. Imagino até que exista alguma API que carrega bean’s para ajudar no CRUD em aplicações Desktop, não?
Bom, aonde quero chegar é no reaproveitamento e facilitação do desenvolvimento de um design bem elaborado.
Existe uma técnica, uma organização definida que me permite criar uma aplicação com Canvas reaproveitável ou terei de escrever tela por tela?
Obrigado pela ajuda!
até onde eu sei (pois nao trabalho com JavaME) só gosto de aprender pq acho interessante …
não tem , é tudo tela por tela e tudo na “unha” oq vc pode fazer para ficar um visual atraente , é usar imagens …
O JavaME perde mto em termos de interface para seus concorrentes como symbian, flashLite …
mas ja ouvi falar que a Sun está trabalhando num JavaME com interface rica. é aguardar
se vc descobrir algo em suas pesquisas , posta ae que tbem fiquei curioso agora…
[]'s
Hmmm… ok.
Bom, até o momento a única coisa que descobri (e constatei) foi que a utilização de SVG é bem interessante. Com a utilização de SVG (que pelo que entendi é um design especificado em um arquivo texto devidamente estruturado) é possível fazer telas muito interessantes. O problema é que para isso o celular precisar suportar a JSR 226: Scalable 2D Vector Graphics API for J2ME.
No NetBeans 6.0 é incluído junto ao Mobility Pack um exemplo de tela usando SVG. Pode conferir, é bem bacana.