讓TinyGUI庫支援模擬器

2022-02-24 09:13:06 字數 3864 閱讀 6068

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軟體和遊戲,完全免...