微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Android嵌入式平台传感器应用开发水平仪

基于Android嵌入式平台传感器应用开发水平仪

时间:04-16 来源:互联网 点击:

Bitmap2;//中间的小气泡

BitmapxiaBitmap1;//右下的矩形图

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(){//初始化图片的方法

…//该处省略了部分代码,将在后面进行介绍

}

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

…//该处省略了部分代码,将在后面进行介绍

}

@Override

protectedvoidonDraw(Canvascanvas){//重写的绘制方法

super。onDraw(canvas);

…//该处省略了部分代码,将在后面进行介绍

}

}

上述代码中的initBitmap以及initLocation方法是对界面进行初始化方法,而onDraw方法会根据需要绘制整个界面。

MainView类构造器中调用了两个单独的方法对整个界面进行了初始化,这是一种非常好的编程习惯。因为把不同功能的代码各自编写成独立的方法可以使主逻辑清晰,且各个方法中的代码都不是很长,会大大提高代码的可读性以及可维护性。

完成了代码框架的开发后就可以对其中各个方法进行开发了,首先开发的是图片资源的初始化方法,其代码如下:

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方法的全部代码,其作用是对程序中所有的图片资源进行初始化,在开发该方法之前,应该确保所有的图片资源已经存放到了指定的目录下。

完成了图片资源初始化方法的开发后,便可对气泡位置初始化方法initLocation进行开发了,其代码如下:

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;

}

在该方法中通过相应图片的宽度和高度动态计算气泡的初始坐标,采用此方法动态计算气泡坐标的好处是当日后更改图片资源后,不需要重写修改源代码即可正常运行,大大提高了程序的可维护性。

在完成了各个初始化方法的开发后就可以对绘制方法onDraw进行开发,该方法主要负责界面的绘制工作,其代码如下:

@Override

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

canvas。drawColor(Color。WHITE);//设置背景色为白色

paint。setColor(Color。BLUE);//设置画笔颜色

paint。setStyle(Style。STROKE);//设置画笔为不填充

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

//画背景矩形

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

canvas。drawBitmap(zuoB

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top