android 搖一搖 震動 聲音效果

2021-09-13 09:50:45 字數 1866 閱讀 9936

搖一搖主要通過sensormanager監聽手機,實現sensoreventlistener,在onsensorchanged去判斷,根據加速度來判斷搖晃的程度。

shakesensorlistener shakelistener = new shakesensorlistener();

sensormanager sensormanager = (sensormanager)getsystemservice(context.sensor_service);

private class shakesensorlistener implements sensoreventlistener

// 開始動畫

anim.start();

float values = event.values;

/** x : x軸方向的重力加速度,向右為正

* y : y軸方向的重力加速度,向前為正

* z : z軸方向的重力加速度,向上為正

*/float x = math.abs(values[0]);

float y = math.abs(values[1]);

float z = math.abs(values[2]);

//加速度超過19,搖一搖成功

if (x > 19 || y > 19 || z > 19)

},1000);}}

@override

public void onaccuracychanged(sensor sensor, int accuracy)

}

如果手機一直在搖晃,會不停的呼叫onsensorchanged ,而我們只想要一次搖一搖的效果,所以加了isshake欄位去判斷。 在一次搖一搖事件完成後置false,可以繼續搖一搖。

註冊監聽,同時別忘了取消註冊。

@override

protected void onresume()

@override

protected void onpause()

搖一搖過程可以執行動畫效果。

objectanimator anim = objectanimator.offloat(imghand,"rotation",0f,45f,-30f,0f);

anim.setduration(500);

anim.setrepeatcount(valueanimator.infinite);

private void playsound(context context)
震動效果,這裡注意要在androidmanifest 檔案裡新增許可權

private void vibrate(long milliseconds)
一次搖一搖後,這裡在彈框消失後可繼續搖一搖。

private void showdialog() 

});window window = malertdialog.getwindow();

window.setbackgrounddrawable(new colordrawable(0x00000000));

}

至此,一套搖一搖效果完成!

android 搖一搖 震動 聲音效果

搖一搖主要通過sensormanager監聽手機,實現sensoreventlistener,在onsensorchanged去判斷,根據加速度來判斷搖晃的程度。shakesensorlistener shakelistener new shakesensorlistener sensormanag...

android 搖一搖 震動 聲音效果

搖一搖主要通過sensormanager監聽手機,實現sensoreventlistener,在onsensorchanged去判斷,根據加速度來判斷搖晃的程度。shakesensorlistener shakelistener new shakesensorlistener sensormanag...

android 搖一搖 震動 聲音效果

android 搖一搖 震動 聲音效果 搖一搖主要通過sensormanager監聽手機,實現 sensoreventlistener,在onsensorchanged去判斷,根據加速度來判斷搖晃的程度。shakesensorlistener shakelistener new shakesenso...