Рисование стеклянных кнопок - PullRequest
4 голосов
/ 23 мая 2011

Я собираюсь нарисовать какие-то стеклянные кнопки в java me (нацеливание на устройства с MIDP 2.0). Пример: enter image description here

На самом деле мне нужно реализовать эффекты градиента и Bevel-Emboss в Java ME, есть ли у вас мнение или «руководство» о том, как это реализовать?

РЕДАКТИРОВАТЬ: Теперь я знаю, как рисовать градиентный фон, но этого недостаточно. Можно ли нарисовать такую ​​стеклянную кнопку в Java ME? Я работал с C # и могу рисовать такие стеклянные кнопки там, но я пытаюсь изобразить что-то вроде этих кнопок в Java ME или хотя бы что-нибудь рядом с ними. Обратите внимание, что я ищу хорошие руководство и помощь для продвижения вперед.

Нужно ли предоставлять больше информации? Если это так, пожалуйста, дайте мне знать. Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 01 июня 2011

Вы можете использовать LWUIT framework для разработки приложений java-me (MIDP 2.0).Это хороший графический интерфейс для Java-приложения.Здесь вы можете создать тему вручную, используя ResourceEdit.Для получения дополнительной информации см. Также обсуждение и LWUIT .

2 голосов
/ 05 июня 2011

Вы можете сделать это, используя альфа-градиентную краску. Вот пример:

Graphics2D g = (Graphics2D)screen.getGraphics();
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setFont(new Font("Serif", Font.BOLD, 30));
Color c1 = new Color(0,0,0,0);
Color c2 = new Color(0,0,0,100);
GradientPaint gradient = new GradientPaint(10,8,c1,10,40,c2,true);

g.setColor(Color.GREEN);
g.fillRect(0, 0, screen.width, screen.height);
g.setColor(Color.BLACK);
g.setPaint(gradient);
g.fillRoundRect(100, 100, 200, 50, 25, 25);
g.setPaint(Color.BLACK);
g.drawRoundRect(100, 100, 200, 50, 25, 25);
g.drawString("Hello World!", 118, 135);

это будет выглядеть так:

Button with green background

1 голос
/ 31 мая 2011

yoy не может сделать это во мне, потому что это не имеет такого эффекта досягаемости для пользовательского интерфейса

Получите изображение с таким эффектом и сделайте его прозрачным, используя

btn.getStyle().setBgTransparency(100) // from 0-255

примечание: вы должны использовать изображения, которые уже полупрозрачны, в противном случае setBgTransparency не будет работать должным образом

Я не могу рекомендовать вам использовать canvas

Я рекомендую использовать LWUIT

у него есть еще много нужных вам рекламных эффектов, например

btnBuzz.getStyle().setBorder(Border.createBevelLowered());

он также имеет разную компоновку

...