編輯:關於Android編程
/>
這個是自定義圓形圖片,之前的博客已經說過了,具體可以去看 ,然後控制的這種效果是背景添加了一個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 SDK的tools有個proguard目錄,這個目錄下就是提供了A
效果 android 4.4之後,系統是支持自定義狀態欄和導航欄的,舉個最典型的例子就是bilibili客戶端了(iOS版本和android版本能用兩套完全不一樣符合各
android 5.0 以後,app可以在styles.xml中通過設置主題theme的顏色來設置指定的Activity或者整個app的顯示的顏色,一直對幾個屬性混淆,這
前言Android開發中我們或多或少都會接觸到數據庫。Android中提供了一個占用內存極小的關系型數據庫-SQLite。雖然Android系統中提供了許多操作SQLit