在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Android嵌入式平臺(tái)傳感器應(yīng)用開發(fā)水平儀

            基于Android嵌入式平臺(tái)傳感器應(yīng)用開發(fā)水平儀

            作者: 時(shí)間:2012-04-16 來源:網(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坐標(biāo)

            intshang2_Y;

            intzuo2_X;//左面圖的氣泡XY坐標(biāo)

            intzuo2_Y;

            intzhong2_X;//中間的小氣泡XY坐標(biāo)

            intzhong2_Y;

            intxia2_X;//右下的氣泡XY坐標(biāo)

            intxia2_Y;

            publicMainView(Contextcontext,AttributeSetattrs){

            super(context,attrs);

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

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

            }

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

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

            }

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

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

            }

            @Override

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

            super。onDraw(canvas);

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

            }

            }

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

            MainView類構(gòu)造器中調(diào)用了兩個(gè)單獨(dú)的方法對整個(gè)界面進(jìn)行了初始化,這是一種非常好的編程習(xí)慣。因?yàn)榘巡煌δ艿拇a各自編寫成獨(dú)立的方法可以使主邏輯清晰,且各個(gè)方法中的代碼都不是很長,會(huì)大大提高代碼的可讀性以及可維護(hù)性。

            完成了代碼框架的開發(fā)后就可以對其中各個(gè)方法進(jìn)行開發(fā)了,首先開發(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)行初始化,在開發(fā)該方法之前,應(yīng)該確保所有的圖片資源已經(jīng)存放到了指定的目錄下。

            完成了圖片資源初始化方法的開發(fā)后,便可對氣泡位置初始化方法initLocation進(jìn)行開發(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;

            }

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

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

            @Override

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

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

            paint。setColor(Color。BLUE);//設(shè)置畫筆顏色

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

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

            //畫背景矩形

            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);//下

            //開始繪制氣泡

            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);//設(shè)置畫筆顏色用來繪制刻度

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

            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操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉