Galera,
Estou programando em Canvas e em CustomItens, porem não creio que meus códigos estão ficando muito bonitos…
Gostaria de algumas dicas e malicias para melhorar meus códigos.
principalmente o Paint() e o KeyPressed().
Não acho que esta ruim pois nem flags estou usando. mas sei que dá pra melhorar mais.
Agradeço
Ricoldi.
Cara isso ai vai realmente da experiencia com canvas, vc tem que treinar, utlize imagens para montar seus menus, tente utilizar o menos possivel desenhar de modo vetorial, desenhe em vetorial somente o que precisa ser dinamico, tudo que for estatico utlize como uma imagem.
o dreamwaver novo versão cs3 vem com um utilitario legal o Adobe Device Central, para vc montar tela para celulares, vc usa ele em parceria com o photoshop, bem interessante, abaixo uns videos pra vc dar uma olhada.
Então Shakall, só que o problema é pra telas de tamanhos diferentes, usar imagens prontas pode zar alguma coisa né…
Agradeço, a ajuda!
Mas procuro algumas dicas da programação mesmo!
Vlw,
Ricoldi
sim, mas pra isso existe diversos modos de redimensionar as telas, onte mesmo deu trabalho mas fiz uma tela que se comporta igual em diversos modelos, testem em uam z3 motorola, um da samsung, e uma palm, ambos ficaram iguals e ambos tem telas diferentes, o que mais deu trabalho foi o palm, pois ele é deferente das telas dos celulares, pois enquanto a maioria dos celulares possui o numero de linhas maiores que o numero de colunas, o lam é diferente ele tem o numero de colunas maiores que os de linha, e sempre ficava desalinhada a tela de login que fiz, recebendo o que estava digitado e exibindo na tela com um textfield feito por mim tb, o negocio é tentar e usar todos os metodos de canvas ai vc vai pegando o jeito.
é muito dificil te passar uma maneira de fazer isso ou aquilo, usando canvas vc tem total liberdade de fazer o que vc quiser, então o que te recomendo é realmente treinar e estudar, eu mesmo to começando tb, mas já estou indo bem.
quando sua aplicação ficar lenta, tente ver se vc não esta repetindo alguns passos, como alocar imagem, setando metodos desnecessários e outros, eu mesmo estava cometendo um erro que era criar a imagem dentro do metodo paint(); desta forma toda vez que a tela fosse pintada ele pegava a imagem alocava na variavel para que eu utliza-se, ai depois me toquei do que tava errado, tirando este codigo de dentro do paint()… e colocando no contrutar, o desempenho melhorou e muito.
poxa, Shakall, legal esse seu lance de ter funcionado em outras telas, mas vc faz o que redimensiona a imagem?
Sobre o resto já faço assim, uso muito o clip para minimizar o uso de processamento.
Se tb esta aprendendo então “é nois” rs…
Vlw os toques.
Ricoldi.
Procura sobre uma técnica chamada viewport, com ela vc entra com o tamanho minimo e maximo do x e y, da imagem que vc quer exibir, e o tamanho minimo e maximo da area a onde vc quer exibila, assim se precisar diminuir ela jah converte os pixel pra se encaixar nesta area, se não se a area for maior que a imagem ele ajusta a imagem pra caber nesta area tb aumentando-a.
segue abaixo um exemplo
private float wxmin,wymin,wxmax,wymax,vymin,vxmin,vxmax,vymax;
private Ponto viewport(Ponto pu) {
Ponto pt=new Ponto();
pt.set_X(vxmin+(pu.get_X()-wxmin)*((vxmax-vxmin)/(wxmax-wxmin)));
pt.set_Y(vymin+(pu.get_Y()-wymin)*((vymax-vymin)/(wymax-wymin)));
pt.set_cod(pu.get_cod());
return(pt);
}
Ponto é uma classe que criei ela representa o pixel, nesta classe vc tem o x, y deste pixel, assim como sua cor, vc entra com o ponto da imagem, e ele retorna qual a posição que este ponto deve ser desenhado na area de exibição.
Isso eu fiz sozinho mas se vc pesquisar na net vai ver varios codigos prontos, de outras maneiras, da uma pesquisada que vc acha.
Poxa, muito interessante mesmo!
Agradeço a atenção e principalmente a ajuda,
vou dar uma pesquisada sobre isso!
Abraços,
Ricoldi
Crie classes separadas para seus controles. Aí, no método paint e keypressed da sua tela Canvas, você chama os métodos paint e keypressed que vc criou nas classes dos seus componentes.
Isso limpará as suas telas de coisas que não tem haver com elas, mas sim com os controles.
Nas minhas telas Canvas, é muito comum não ter nenhuma linha de código, e mesmo assim, terem vários controles de entrada de texto, menu, listas, etc. Todos feitos em Canvas.
Essa é a idéia. É um bom artigo a ser escrito
vou ver se consigo um tempo pra escrever.
Abraço.
Se for possivel montar este artigo ficariamos gratos 
Um otimo exemplo npereirajr,
agora consegui ter uma idea de como proceder para deixar meu código mais limpo.
Agradeço, e esse Artigo com certeza vai ajudar muita gente pois não existem bons artigos sobre Canvas.
seria umas 4 rodas…
Abraços
Ricoldi.