編輯:關於Android編程
這篇博客還是接著上一篇Android音樂播放器制作寫的,沒看過的可以去看看
其中這個效果(圓形ImageView和控件勻速旋轉):
我前面的博客中寫到過我就不一一細說了:
/>
這個是自定義圓形圖片,之前的博客已經說過了,具體可以去看 ,然後控制的這種效果是背景添加了一個shap

點擊上一曲下一期的變化效果:
添加了一個點擊的selector:
private int playPosition;//當前播放歌曲的序號
private boolean IsPlay = false;//是否有歌曲在播放
private Button playPause;//暫停和播放按鈕
private TextView song;//歌曲名
private TextView singer;//歌手名
private ImageView imageView;//控制台的圖片
private Animation animation;//動畫
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView adapterView, View view, int i, long l) {
//創建一個播放音頻的方法,把點擊到的地址傳過去
//list.get(i).path這個就是歌曲的地址
play(list.get(i).path);
////播放暫停按鈕圖片變成播放狀態
playPause.setBackgroundResource(R.drawable.pause_press);
//把當前點擊的item的position拿到,知道當前播放歌曲的序號
playPosition = i;
//播放音樂的時候把是否在播放賦值為true
IsPlay = true;
//點擊item讓控制台顯示出來
findViewById(R.id.main_control_rl).setVisibility(View.VISIBLE);
}
});
然後就是幾個button的點擊事件了:
/**
* 底部控制欄的點擊事件
*
* @param view
*/
public void control(View view) {
switch (view.getId()) {
case R.id.playing_btn_previous://上一曲
//如果播放歌曲的序號小於或者等於0的話點擊上一曲就提示已經是第一首了
if (playPosition <= 0) {
Toast.makeText(MainActivity.this, "已經是第一首歌了", Toast.LENGTH_SHORT).show();
} else {
//讓歌曲的序號減一
playPosition--;
//播放
play(list.get(playPosition).path);
playPause.setBackgroundResource(R.drawable.pause_press);
}
break;
case R.id.playing_btn_pause://暫停和播放
if (IsPlay == false) {
//播放暫停按鈕圖片變成播放狀態
playPause.setBackgroundResource(R.drawable.pause_press);
//繼續播放
mediaPlayer.start();
imageView.startAnimation(animation);
IsPlay = true;//是否在播放賦值為true
animation.start();
Toast.makeText(MainActivity.this, "播放" + list.get(playPosition).song, Toast.LENGTH_SHORT).show();
} else {
//播放暫停按鈕圖片變成暫停狀態
playPause.setBackgroundResource(R.drawable.play_press);
//暫停歌曲
mediaPlayer.pause();
imageView.clearAnimation();//停止動畫
IsPlay = false;//是否在播放賦值為false
Toast.makeText(MainActivity.this, "暫停" + list.get(playPosition).song, Toast.LENGTH_SHORT).show();
}
break;
case R.id.playing_btn_next://下一曲
//歌曲序號大於或者等於歌曲列表的大小-1時,讓歌曲序號為第一首
if (playPosition >= list.size() - 1) {
playPosition = 0;
} else {
//點擊下一曲讓歌曲的序號加一
playPosition++;
}
//播放
play(list.get(playPosition).path);
//播放暫停按鈕圖片變成播放狀態
playPause.setBackgroundResource(R.drawable.pause_press);
break;
}
}
/**
* 控制歌曲和歌手TextView的方法
*/
private void setText() {
song.setText(list.get(playPosition).song);
song.setSelected(true);//當歌曲名字太長是讓其滾動
singer.setText(list.get(playPosition).singer);
}
Android之——代碼混淆
Android自身可以實現代碼的混淆功能,Android集成了代碼混淆的功能,這些功能在Android SDK的tools有個proguard目錄,這個目錄下就是提供了A
android 自定義狀態欄和導航欄分析與實現
效果 android 4.4之後,系統是支持自定義狀態欄和導航欄的,舉個最典型的例子就是bilibili客戶端了(iOS版本和android版本能用兩套完全不一樣符合各
android 5.0 界面常用的顏色屬性
android 5.0 以後,app可以在styles.xml中通過設置主題theme的顏色來設置指定的Activity或者整個app的顯示的顏色,一直對幾個屬性混淆,這
GreenDao 3.2.0 的基本使用
前言Android開發中我們或多或少都會接觸到數據庫。Android中提供了一個占用內存極小的關系型數據庫-SQLite。雖然Android系統中提供了許多操作SQLit