基于Android嵌入式平台传感器应用开发水平仪
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
应用开发 水平 传感器 平台 Android 嵌入式 基于 相关文章:
- iOS平台应用开发的敏捷设计流程(09-12)
- SPE61A单片机的非接触式高压验电器的应用开发(06-23)
- 采用PDIUSBD12芯片的USB应用开发(05-02)
- 基于Android的多媒体应用开发与研究(03-05)
- 嵌入式PLC芯片组的多路模拟量应用开发(12-12)
- 基于PDIUSBD12芯片的USB应用开发(08-12)