microsoft .net micro framework 官方ui庫為wpf,針對320*240的lcd而言,至少額外需要150k以上ram才能基本執行,所以推出了輕量級的圖形庫tinygui。
wpf支援標準bmp,jpg,gif顯示,從使用角度來看非常方便,但是由於嵌入式lcd大都為16bit顯示(rgb565格式),無論是bmp還是jpg和gif都需要進行顏色轉換,此外後者還需要進行格式轉換處理。以上操作,不僅導致執行速度慢,還需要一定的記憶體進行圖形快取。
tinygui的點陣圖顯示採用轉換後的tinybmp點陣圖格式,其格式和lcd視訊記憶體格式保持一致,由於圖形轉換工作通過工具yftbconvert預先完成,所以在嵌入式系統上直接向視訊記憶體拷貝,即可完成位圖顯示,所以執行速度極快。
第乙個版本的庫,不支援模擬器顯示,這樣使用者在測試新應用時,必須借助實際的開發板才能看到實際的執行效果,這大大影響了使用者的體驗,所以重新設計了**,讓模擬器也能支援tinygui庫的執行。
在《tinygui繪圖標例》中我們介紹過tinygui的使用,當時的庫還只能在開發板中執行,現在同樣的示例**,我們讓其在模擬器中執行,示例**如下:
public static void main()
;graphics.clear(color.blue);
int x, y, width, height, c;
long index = 0;
hardwareprovider hwp = new hardwareprovider();
int lcd_width,lcd_height,lcd_bitsperpixel,lcd_orientationdeg;
hwp.getlcdmetrics(out lcd_width, out lcd_height, out lcd_bitsperpixel, out lcd_orientationdeg);
int graphics_width = lcd_width - 1;
int graphics_height = lcd_height - 1;
random rnd = new random();
while (true)
graphics.fillrectangle(0, graphics_height-19, graphics_width, 19, color.white);
graphics.drawstring(2, graphics_height-17, (index++).tostring(), color.blue);
thread.sleep(50);}}
在模擬器中執行的效果圖如下(其實在官方模擬器中也可以執行)。
附:system.tinygui庫函式說明
宣告:void clear(uint color)
引數:color– 清除後的背景色 (24bit rgb)
返回:無
說明:以用指定顏色清除lcd顯示。
宣告:void setpixel(int x,int y,uint color)
引數:x,y – 螢幕座標
color– 顏色
返回:無
說明:畫點。
宣告:uint getpixel (int x,int y)
引數:x,y – 螢幕座標
返回:指定座標的顏色
說明:返回指定座標的顏色,有些硬體不支援該函式。
宣告:void drawline(int x1, int y1, int x2, int y2, uint color)
引數:x1,y1,x2,y2 – 螢幕座標
color– 顏色
返回:無
說明:畫線。
宣告:void drawrectangle(int x, int y, int width, int height, uint color)
引數:x,y – 螢幕左上角座標
width,height – 寬,高
color– 顏色
返回:無
說明:畫空心矩形。
宣告:void drawellipse(int x, int y, int width,int height, uint color)
引數:x,y – 螢幕左上角座標
width,height – 寬,高
color– 顏色
返回:無
說明:畫空心橢圓。
宣告:void drawimage(int x, int y, byte bytdata)
引數:x,y – 螢幕左上角座標
bytdata - tinybmp格式的影象資料
返回:無
說明:位圖繪製(模擬器暫不支援)。
宣告:void drawimageex (int x, int y, byte bytdata,uint maskcolor)
引數:x,y – 螢幕左上角座標
bytdata - tinybmp格式的影象資料
maskcolor– 遮蔽色
返回:無
說明:位圖繪製(模擬器暫不支援)。
宣告:void drawstring (int x, int y,string s, uint color)
引數:x,y – 螢幕左上角座標
s – 字串
color– 字型顏色
返回:無
說明:繪製字型(暫時僅支援符號和西文字元)
宣告:void fillrectangle (int x, int y, int width, int height, uint color)
引數:x,y – 螢幕左上角座標
width,height – 寬,高
color– 填充色
返回:無
說明:畫填充矩形。
宣告:void fillellipse (int x, int y, int width, int height, uint color)
引數:x,y – 螢幕左上角座標
width,height – 寬,高
color– 填充色
返回:無
說明:畫填充橢圓。
宣告:void print(string str)
引數:str – lcd顯示的字串
返回:無
說明:lcd資訊輸出(底層lcd_printf函式的封裝)。
宣告:void suspendlayout ()
引數:無
返回:無
說明:掛起lcd的輸出顯示。
宣告:void suspendlayout ()
引數:無
返回:無
說明:恢復掛起的lcd輸出顯示。
mf快速參考: .net micro framework 快速入門
mf中文討論組:
【低價開發板】
讓TinyGUI庫支援模擬器
microsoft net micro framework 官方ui庫為wpf,針對320 240的lcd而言,至少額外需要150k以上ram才能基本執行,所以推出了輕量級的圖形庫tinygui。wpf支援標準bmp,jpg,gif顯示,從使用角度來看非常方便,但是由於嵌入式lcd大都為16bit顯...
讓索愛k700模擬器支援中文顯示。
2月24日 讓索愛k700模擬器支援中文顯示。j2medev上 dhlxmy 提出了這個問題,也給出了解決辦法。在回帖中也給出了可能的問題所在。但是很多朋友並沒有解決問題。我自己總結了一下,並把最終不很完美的解決辦法給出來 1.把sonyericsson z520.properties中關於字型定義...
安卓模擬器 exagear模擬器安卓模擬器
讓android 裝置使用者重溫經典 pc 遊戲,來自俄羅斯的初創公司 eltechs發布了一款全新的 android 遊戲模擬器 exagear strategies。該遊戲模擬器的主要功能就是將經典的 pc 遊戲帶到 android 智慧型手機或平板電腦上來。1.exagear軟體和遊戲,完全免...