<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)ndroid嵌入式平臺傳感器應用開(kāi)發(fā)水平儀

基于A(yíng)ndroid嵌入式平臺傳感器應用開(kāi)發(fā)水平儀

作者: 時(shí)間:2012-04-16 來(lái)源:網(wǎng)絡(luò ) 收藏

BitmapxiaBitmap2;//右下的氣泡

//背景矩形的位置聲明

intshang1_X=60;//上面的大矩形圖

intshang1_Y=12;

intzuo1_X=12;//左面的大矩形圖

intzuo1_Y=60;

intzhong1_X=65;//中間的大圓圖

intzhong1_Y=65;

intxia1_X=145;//右下的矩形圖

intxia1_Y=145;//水泡的位置聲明

intshang2_X;//上面的氣泡XY坐標

intshang2_Y;

intzuo2_X;//左面圖的氣泡XY坐標

intzuo2_Y;

intzhong2_X;//中間的小氣泡XY坐標

intzhong2_Y;

intxia2_X;//右下的氣泡XY坐標

intxia2_Y;

publicMainView(Contextcontext,AttributeSetattrs){

super(context,attrs);

initBitmap();//初始化圖片資源

initLocation();//初始化氣泡的位置

}

privatevoidinitBitmap(){//初始化圖片的方法

…//該處省略了部分代碼,將在后面進(jìn)行介紹

}

privatevoidinitLocation(){//初始化氣泡位置的方法

…//該處省略了部分代碼,將在后面進(jìn)行介紹

}

@Override

protectedvoidonDraw(Canvascanvas){//重寫(xiě)的繪制方法

super。onDraw(canvas);

…//該處省略了部分代碼,將在后面進(jìn)行介紹

}

}

上述代碼中的initBitmap以及initLocation方法是對界面進(jìn)行初始化方法,而onDraw方法會(huì )根據需要繪制整個(gè)界面。

MainView類(lèi)構造器中調用了兩個(gè)單獨的方法對整個(gè)界面進(jìn)行了初始化,這是一種非常好的編程習慣。因為把不同功能的代碼各自編寫(xiě)成獨立的方法可以使主邏輯清晰,且各個(gè)方法中的代碼都不是很長(cháng),會(huì )大大提高代碼的可讀性以及可維護性。

完成了代碼框架的開(kāi)發(fā)后就可以對其中各個(gè)方法進(jìn)行開(kāi)發(fā)了,首先開(kāi)發(fā)的是圖片資源的初始化方法,其代碼如下:

privatevoidinitBitmap(){//初始化圖片資源的方法

shangBitmap1=BitmapFactory。decodeResource(getResources(),R。drawable。shang1);

shangBitmap2=BitmapFactory。decodeResource(getResources(),R。drawable。shang2);

zuoBitmap1=BitmapFactory。decodeResource(getResources(),R。drawable。zuo1);

zuoBitmap2=BitmapFactory。decodeResource(getResources(),R。drawable。zuo2);

zhongBitmap1=BitmapFactory。decodeResource(getResources(),R。drawable。zhong1);

zhongBitmap2=BitmapFactory。decodeResource(getResources(),R。drawable。zhong2);

xiaBitmap1=BitmapFactory。decodeResource(getResources(),R。drawable。xia1);

xiaBitmap2=BitmapFactory。decodeResource(getResources(),R。drawable。xia2);

}

上述代碼為initBitmap方法的全部代碼,其作用是對程序中所有的圖片資源進(jìn)行初始化,在開(kāi)發(fā)該方法之前,應該確保所有的圖片資源已經(jīng)存放到了指定的目錄下。

完成了圖片資源初始化方法的開(kāi)發(fā)后,便可對氣泡位置初始化方法initLocation進(jìn)行開(kāi)發(fā)了,其代碼如下:

privatevoidinitLocation(){//初始化氣泡位置的方法

shang2_X=shang1_X+shangBitmap1。getWidth()/2-shangBitmap2。getWidth()/2;

shang2_Y=shang1_Y+shangBitmap1。getHeight()/2-shangBitmap2。getHeight()/2;

zuo2_X=zuo1_X+zuoBitmap1。getWidth()/2-zuoBitmap2。getWidth()/2;

zuo2_Y=zuo1_Y+zuoBitmap1。getHeight()/2-zuoBitmap2。getHeight()/2;

zhong2_X=zhong1_X+zhongBitmap1。getWidth()/2-zhongBitmap2。getWidth()/2;

zhong2_Y=zhong1_Y+zhongBitmap1。getHeight()/2-zhongBitmap2。getHeight()/2;

xia2_X=xia1_X+xiaBitmap1。getWidth()/2-xiaBitmap2。getWidth()/2;

xia2_Y=xia1_Y+xiaBitmap1。getHeight()/2-xiaBitmap2。getHeight()/2;

}

在該方法中通過(guò)相應圖片的寬度和高度動(dòng)態(tài)計算氣泡的初始坐標,采用此方法動(dòng)態(tài)計算氣泡坐標的好處是當日后更改圖片資源后,不需要重寫(xiě)修改源代碼即可正常運行,大大提高了程序的可維護性。

在完成了各個(gè)初始化方法的開(kāi)發(fā)后就可以對繪制方法onDraw進(jìn)行開(kāi)發(fā),該方法主要負責界面的繪制工作,其代碼如下:

@Override

protectedvoidonDraw(Canvascanvas){//界面繪制方法super。onDraw(canvas);

canvas。drawColor(Color。WHITE);//設置背景色為白色

paint。setColor(Color。BLUE);//設置畫(huà)筆顏色

paint。setStyle(Style。STROKE);//設置畫(huà)筆為不填充

canvas。drawRect(5,5,315,315,paint);//繪制外邊框矩形

//畫(huà)背景矩形

canvas。drawBitmap(shangBitmap1,shang1_X,shang1_Y,paint);//上

canvas。drawBitmap(zuoBitmap1,zuo1_X,zuo1_Y,paint);//左

canvas。drawBitmap(zhongBitmap1,zhong1_X,zhong1_Y,paint);//中

canvas。drawBitmap(xiaBitmap1,xia1_X,xia1_Y,paint);//下

//開(kāi)始繪制氣泡

canvas。drawBitmap(shangBitmap2,shang2_X,shang2_Y,paint);//上

canvas。drawBitmap(zuoBitmap2,zuo2_X,zuo2_Y,paint);//左

canvas。drawBitmap(zhongBitmap2,zhong2_X,zhong2_Y,paint);//中

canvas。drawBitmap(xiaBitmap2,xia2_X,xia2_Y,paint);//下

paint。setColor(Color。GRAY);//設置畫(huà)筆顏色用來(lái)繪制刻度

//繪制上面方框中的刻度

canvas。drawLine(shang1_X+shangBitmap1。getWidth()/2-7,shang1_Y,shang1_X+shangBitmap1。getWidth()/2-7,shang1_Y+shangBitmap1。getHeight()-2,paint);

canvas。drawLine(shang1_X+shangBitmap1。getWidth()/2+7,shang1_Y,shang1_X+shangBitmap1。getWidth()/2+7,shang1_Y+shangBitmap1。getHeight()-2,paint);

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>