This repository was archived by the owner on Feb 17, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Using the LCD
mob41 edited this page Jan 15, 2017
·
10 revisions
The library provides an LCDGraphics class to deal with the LCD. But in this stage, the LCDGraphics class haven't implemented completely. This page is only for testing the features.
LCD lcd = new LCD(); //Creates an ev3dev LCD instance.
LCDGraphics g = new LCDGraphics(lcd); //Creates the LCDGraphics class
//The LCD only supports BLACK and WHITE. Specifying other colors
//will result an exception
//g.setColor(Color.WHITE); //Sets color to Color.WHITE
//g.setWhiteColor(); //Alternative
//g.setColor(Color.BLACK); //Sets color to Color.BLACK
g.setBlackColor(); //Alternative
//The library currently implements the drawLine() and fillRect() method
g.drawLine(0, 0, 100, 30); //Draws a line from (0,0) to (100,30)
g.fillRect(50, 50, 25, 25); //Draws a 25x25 rectangle at (50,50)
g.flush(); //Applies the graphics to the LCDThe library provides a VirtualLCD to emulate the graphics on the computer before the ev3.
VirtualLCD lcd = new VirtualLCD();
lcd.showVLCD(); //Shows an UI of the virtual LCD
LCDGraphics g = new LCDGraphics(lcd);
g.setBlackColor(); //Alternative
g.drawLine(0, 0, 100, 30); //Draws a line from (0,0) to (100,30)
g.flush(); //Applies the graphics to the LCDIt should be like this:
The library also allows you to draw directly to the buffer. More details please refer to http://www.ev3dev.org/docs/tutorials/using-ev3-lcd/
LCD lcd = new LCD();
final int SCREEN_WIDTH = 178;
final int SCREEN_HEIGHT = 128;
final int LEN = 24;
final int SIZE = 3072;
byte[] arr = new byte[SIZE];
//0xff (1) = BLACK
//0x00 (0) = WHITE
//Draws a horizontal line to row 5 to the end of the screen
for (int i = 0; i < SCREEN_WIDTH; i++){
arr[5 * LEN + i] = (byte) 0xff; //Fill with BLACK
}
lcd.draw(arr);The LCDGraphics class is in very very early development stage. Many methods are still not implemented. The problem behind is it requires high knowledge on pixel and a lot of time to develop. Contributions on this are welcome!
- All things marked with
TODOin LCDGraphics.java - Moving to
Graphics2D
Mark down algorithm.