這里介紹的水平儀,指的是比較傳統(tǒng)的氣泡水平儀,在一個透明圓盤內(nèi)充滿液體,液體中留有一個氣泡,當(dāng)一端翹起時,該氣泡就會浮向翹起的一端。
創(chuàng)新互聯(lián)專注于南充企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開發(fā)。南充網(wǎng)站建設(shè)公司,為南充等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)利用方向傳感器返回的第一個參數(shù),實(shí)現(xiàn)了一個指南針小應(yīng)用。
我的Android進(jìn)階之旅------>Android利用Sensor(傳感器)實(shí)現(xiàn)指南針功能
接下來,我們利用返回的第二、三個參數(shù)實(shí)現(xiàn)該水平儀。因為第二個參數(shù),反映底部翹起的角度(當(dāng)頂部翹起時為負(fù)值),第三個參數(shù)可以反映右側(cè)翹起的角度(當(dāng)左側(cè)翹起時為負(fù)值)。根據(jù)這兩個角度就可以開發(fā)水平儀,實(shí)現(xiàn)手機(jī)哪端翹起,氣泡就浮向哪端,這也是水平儀的實(shí)現(xiàn)思想。本實(shí)例來自于《瘋狂Android講義》
先來看下運(yùn)行效果:
該程序自定義了一個View,用來繪制透明圓盤和氣泡,其中氣泡的位置會動態(tài)改變。自定義View代碼如下:
MyView.java
package org.crazyit.sensor; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.util.AttributeSet; import android.view.View; public class MyView extends View { // 定義水平儀儀表盤圖片 Bitmap back; // 定義水平儀中的氣泡圖標(biāo) Bitmap bubble; // 定義水平儀中氣泡 的X、Y座標(biāo) int bubbleX, bubbleY; public MyView(Context context, AttributeSet attrs) { super(context, attrs); // 加載水平儀圖片和氣泡圖片 back = BitmapFactory.decodeResource(getResources(), R.drawable.back); bubble = BitmapFactory .decodeResource(getResources(), R.drawable.bubble); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 繪制水平儀表盤圖片 canvas.drawBitmap(back, 0, 0, null); // 根據(jù)氣泡座標(biāo)繪制氣泡 canvas.drawBitmap(bubble, bubbleX, bubbleY, null); } }