編輯:關於Android編程
上篇文章我們簡單的了解了下傳感器,這次我們來簡單運用下——搖一搖聽音樂
效果:
初始界面:
當搖晃到一定程度的時候就跳轉到播放音樂界面並播放音磊喎?/kf/yidong/wp/" target="_blank" class="keylink">WPC9wPg0KPHA+PGltZyBhbHQ9"這裡寫圖片描述" src="/uploadfile/Collfiles/20160607/20160607091026327.png" title="\" />
步驟:
①獲得傳感器服務
SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
②獲得加速度傳感器並注冊監聽器
sm.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
sensorManager.SENSOR_DELAY_UI)
③在onSensorChanged(SensorEvent event)方法中實現搖一搖聽音樂的邏輯(其實邏輯很簡單,只需要判斷當搖晃到一定程度的時候就播放音樂,不過應該在音樂沒播放完之前搖晃是沒效果,做到這個之需要加個標志位)
float x = arg0.values[0];
float y = arg0.values[1];
float z = arg0.values[2];
if ((Math.abs(x)+Math.abs(y)+Math.abs(z)) >= RING_VALUE && flag == false) {
//是否正在播放音樂的標志
flag = true;
//播放音樂界面
tv_start.setVisibility(View.VISIBLE);
//播放音樂的
MediaPlayer player = MediaPlayer.create(MainActivity.this, R.raw.houge);
//開始播放音樂
player.start();
//監聽該首歌有沒有播放完
player.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
arg0.release();
flag = false;
tv_start.setVisibility(View.GONE);
}
});
}
核心代碼:
activity_main.xml
MainActivity.java
public class MainActivity extends Activity {
private TextView tv_start;
private TextView tv_temp;
public static int RING_VALUE = 40;//三維xyz三個值總和達到這個值表示搖晃
boolean flag = false; //表示是否在播放音樂
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv_start = (TextView) findViewById(R.id.tv_start);
tv_temp = (TextView) findViewById(R.id.tv_temp);
//獲取系統傳感器管理器
SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//獲取指定的一個傳感器(加速度傳感器)
Sensor accelerometer = sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
//注冊傳感器的監聽器
sm.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent arg0) {
//傳感器數據變化,在該方法中我們可以獲取傳感器變化的值
float x = arg0.values[0];
float y = arg0.values[1];
float z = arg0.values[2];
if ((Math.abs(x)+Math.abs(y)+Math.abs(z)) >= RING_VALUE && flag == false) {
//是否正在播放音樂的標志
flag = true;
//播放音樂界面
tv_start.setVisibility(View.VISIBLE);
//播放音樂的
MediaPlayer player = MediaPlayer.create(MainActivity.this, R.raw.houge);
//開始播放音樂
player.start();
//監聽該首歌有沒有播放完
player.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
arg0.release();
flag = false;
tv_start.setVisibility(View.GONE);
}
});
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
//傳感器精度的變化
}
}, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
//獲取溫度傳感器
Sensor temperature = sm.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);
sm.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent arg0) {
float temp = arg0.values[0];
temp = (float) (Math.round(temp *10.0)/10.0);
tv_temp.setText("溫度:"+temp+"°C");
}
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
}
}, temperature, SensorManager.SENSOR_DELAY_NORMAL);
}
}
使用起來是不是很方便呢,趕緊試試吧!
圖片輪播Banner現在算是比較常見的功能了,可以用來循環播放廣告或者是熱門內容在這裡我利用ViewPager模擬實現了Banner的功能,效果圖如下:可以看到,在剛打開
Android 軟鍵盤自動彈出與關閉在我們寫修改信息或者搜索,修改密碼等界面的時候,用戶進入這個界面的主要目的就是輸入修改/查找 某些信息,為了用戶體驗應該自動彈出軟鍵盤
進行軟件開發時,通常我們都喜歡使用較新版本的工具,但這裡我為什麼使用低版本的SDK來開發Android游戲呢?這裡介紹下原因: &nbs
前言 安卓2D繪圖,都是主要涉及到2個類:Paint,Canvas. 一,Paint Paint畫筆,用於指定圖形或者文字的顏色,大小等。 常用方法: setAntiAl
1.TextView Textview在之前的學習中用到過好多