Algué sabe como criar um menu no estilo carrossel como o deste exemplo sem utilizar o LWUIT ou o J2ME Polish?
Comecei a criá-lo do zero, consegui posicionar or ícones perfeitamente, porém, fazer este efeito de transição é muito difícil, alguém já viu um código que faça um menu como este? Algum tutorial, exemplo, etc?
Então eu até criei um menu carrossel mais ele é em linha, não diminui o icone e nem tem efeitos de transição. não posso dizer que ficou ruim, pois é bem leve e dinamico em relação a tamanho de telas de celular, criei um igual o do N95, aquele que tem a forma de uma parabola em U.
Mas esse ai seria bem show, deve ser pesado de ficar redimensionando a tela, e fora que redimensionar eu não consigo deixar com bordas transparentes.
Iaê Ricoldi, legal cara…deve ter ficado bacana o menu q vc fez, alias, como o fez?
Eu continuo tentando, ja bolei um esquema para posicionar os ícones de forma circular na tela independente do tamanho da tela, já tenho um algoritmo para mudar o tamnho das imagens (do ícones). Essas imagens ficam com as bordas serrilhadas, mas não tem problema pois só as usarei durante a transição, quand oestiver parado uso a imagem original.
Terias como compartilhar o algoritmo para redimensionar as imagens?
Achei show de bola esse menu, eu mesmo já fiz dois tipos
Aqueles comuns, com linhas e colunas, e um horizontal, que apenas move para a esquerda ou direita.
Queria fazer o efeito de slide, mas não faço nem idéia :oops:
private Image createThumbnail(Image image)
{
int sourceWidth = image.getWidth();
int sourceHeight = image.getHeight();
int thumbWidth = 64;
int thumbHeight = -1;
if (thumbHeight == -1)
thumbHeight = thumbWidth * sourceHeight / sourceWidth;
Image thumb = Image.createImage(thumbWidth, thumbHeight);
Graphics g = thumb.getGraphics();
for (int y = 0; y < thumbHeight; y++)
{
for (int x = 0; x < thumbWidth; x++)
{
g.setClip(x, y, 1, 1);
int dx = x * sourceWidth / thumbWidth;
int dy = y * sourceHeight / thumbHeight;
g.drawImage(image, x - dx, y - dy, Graphics.LEFT | Graphics.TOP);
}
}
Image immutableThumb = Image.createImage(thumb);
return immutableThumb;
}
O que eu fiz foi contar quantos objetos cabem na tela que o aplicativo esta rodando, ai não preciso redimensionar as imagens do menu. de resto deve estar igual o seu, tenho a classe FormCarrossel que extende canvas e tem um vector de "itens de carrossel", cada item de carrossel tem sua imagem, sua descrição e talz, ai quando eu vou usar esse form eu extendo ele e vou dando addItem(), igual se faz com itens em um Form normal. Certo?
Valeu brother. É assim mesmo que fiz o meu menu tbm, da um addItem com usa imagem e descrição, mas no menu horizontal que fiz, deixo os itens que não estão selecionados com um pouco de transparencia, mas vou fazer com as imagens redimensionadas tbm
[quote=j0nny]Valeu brother. É assim mesmo que fiz o meu menu tbm, da um addItem com usa imagem e descrição, mas no menu horizontal que fiz, deixo os itens que não estão selecionados com um pouco de transparencia, mas vou fazer com as imagens redimensionadas tbm
E alguém ja conseguiu o efeito slide?[/quote]
Eu não sei como redimensionar e deixar com transparencia, sem usar clipping (Acho uma pequena gambiarra) . como vai fazer isso?
Cara, por enquanto estou apenas usando transparencia, segue o método…
public final static Image transparentImage(Image img, int percent)
{
try
{
int largura = img.getWidth();
int altura = img.getHeight();
percent = 100 - percent;
int[] rgb = new int[altura * largura];
img.getRGB(rgb, 0, largura, 0, 0, largura, altura);
for(int i = 0; i < rgb.length; i++)
rgb[i] = (((percent * ((rgb[i] & 0xFF000000) >>> 24)) / 100) * 0x1000000) + (rgb[i] & 0x00FFFFFF);
return Image.createRGBImage(rgb, largura, altura, true);
}
catch(Exception e) {
return null;
}
}
Então para evitar muito processamento a cada paint(), criei um outro vetor com as imagens com transparencia, e as adiciono no metodo addItem(Image img, String text);