Categories: Java | Java ME | Code Examples | UI
This page was last modified 10:36, 12 April 2008.
J2ME Draw Gradient
From Forum Nokia Wiki
Here is a J2ME class for gradients drawing, supporting both horizontal and vertical gradients.
This could be useful to substitute background gradient images with graphics drawn by code.
package com.jappit.wiki.gradientrect.graphics; import javax.microedition.lcdui.Graphics; public class Gradient { public static final int VERTICAL = 0; public static final int HORIZONTAL = 1; public static void gradientBox(Graphics g, int color1, int color2, int left, int top, int width, int height, int orientation) { int max = orientation == VERTICAL ? height : width; for(int i = 0; i < max; i++) { int color = midColor(color1, color2, 100 * (max - 1 - i) / (max - 1)); g.setColor(color); if(orientation == VERTICAL) g.drawLine(left, top + i, left + width - 1, top + i); else g.drawLine(left + i, top, left + i, top + height - 1); } } static int midColor(int color1, int color2, int prop) { int red = (((color1 >> 16) & 0xff) * prop + ((color2 >> 16) & 0xff) * (100 - prop)) / 100; int green = (((color1 >> 8) & 0xff) * prop + ((color2 >> 8) & 0xff) * (100 - prop)) / 100; int blue = (((color1 >> 0) & 0xff) * prop + ((color2 >> 0) & 0xff) * (100 - prop)) / 100; int color = red << 16 | green << 8 | blue; return color; } }
and here is a sample Canvas using the gradientBox method (the final effect is shown in the screenshot at beginning of this article):
package com.jappit.wiki.gradientrect.display; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Graphics; import com.jappit.wiki.gradientrect.graphics.Gradient; public class GradientRectCanvas extends Canvas { protected void paint(Graphics g) { int halfWidth = getWidth() / 2; int halfHeight = getHeight() / 2; Gradient.gradientBox(g, 0xffffff, 0xff0000, 0, 0, halfWidth, halfHeight, Gradient.HORIZONTAL); Gradient.gradientBox(g, 0xff0000, 0xffffff, halfWidth, 0, halfWidth, halfHeight, Gradient.VERTICAL); Gradient.gradientBox(g, 0xffff00, 0x00ffff, 0, halfHeight, halfWidth, halfHeight, Gradient.VERTICAL); Gradient.gradientBox(g, 0x00ff00, 0x0000ff, halfWidth, halfHeight, halfWidth, halfHeight, Gradient.VERTICAL); } }
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Listbox with Background image | tvollmer | Symbian User Interface | 12 | 2005-10-26 07:36 |
| Really simple drawing problem | NavaronSoftware | Mobile Java Media (Graphics & Sounds) | 1 | 2004-01-16 09:59 |
| how to stretch a Bitmap? | anurag_iit2k | Symbian Media (Graphics & Sounds) | 4 | 2007-10-22 11:40 |
| Draw and save image | shyam9 | General Symbian C++ | 10 | 2008-04-08 11:31 |
| BigProblem = How to copy in OffScreenBitmap ? | IngeSchmidt | Symbian Tools & SDKs | 10 | 2004-07-24 12:06 |

