我在我的操作欄中有一個播放按鈕,我希望當我點擊播放按鈕,然後等待時間,它將連接到我的實時流,它會顯示循環進度條,當它與流連接時暫停和播放按鈕將appear.like下面的圖片如何在操作欄中放置圓形進度條?
這裏是我的代碼,我使用
action_bar_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
style="@android:style/Widget.ActionButton">
<ProgressBar
android:id="@+id/actionProgressBar"
android:layout_width="32dp"
android:layout_height="32dp"
android:visibility="visible"
android:layout_gravity="center" />
</FrameLayout>
menu.xml文件類
enter code here
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:title="play"
android:icon="@drawable/ic_play_arrow_black_24dp"
android:id="@+id/actionPlay"
app:showAsAction="always"/>
<item
android:title="pause"
android:icon="@drawable/ic_pause_black_24dp"
android:id="@+id/actionPause"
app:showAsAction="always"
android:visible="false"/>
<item
android:title="stop"
android:icon="@drawable/ic_stop_black_24dp"
android:id="@+id/actionStop"
app:showAsAction="always"
android:visible="false"/>
<item
android:id="@+id/action_working"
android:actionLayout="@layout/action_bar_progress"
app:showAsAction="always"
android:title="@string/loadingActionBar"
/>
MainActivity.java
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
mnuPlay = menu.findItem(R.id.actionPlay);
mnuStop=menu.findItem(R.id.actionStop);
mnuPause=menu.findItem(R.id.actionPause);
mnuProgressBar = menu.findItem(R.id.action_working);
if(bConnected){
if(mediaPlayer.isPlaying()){
mnuPlay.setVisible(false);
mnuPause.setVisible(true);
mnuStop.setVisible(true);
mnuProgressBar.setVisible(false);
}else {
if (bShouldPlay) {
mnuPlay.setVisible(false);
mnuPause.setVisible(false);
mnuStop.setVisible(false);
mnuProgressBar.setVisible(true);
}else{
mnuPlay.setVisible(true);
mnuPause.setVisible(false);
mnuStop.setVisible(false);
mnuProgressBar.setVisible(false);
}
}
}else{
mnuPlay.setVisible(true);
mnuPause.setVisible(false);
mnuStop.setVisible(false);
mnuProgressBar.setVisible(false);
}
return super.onPrepareOptionsMenu(menu);
}
//Menu Item function start
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.actionPlay:
if (bConnected)
{
mediaPlayer.start();
mnuPlay.setVisible(false);
mnuProgressBar.setVisible(false);
mnuPause.setVisible(true);
mnuStop.setVisible(true);
Toast.makeText(getBaseContext(), "Playing...", Toast.LENGTH_LONG).show();
}
else
{
mnuPlay.setVisible(false);
mnuPause.setVisible(false);
mnuStop.setVisible(false);
bShouldPlay = true;
getMedia();
mnuProgressBar.setVisible(true);
//Toast.makeText(getBaseContext(), "Still connecting...", Toast.LENGTH_LONG).show();
}
break;
case R.id.actionPause:
//bPaused=true;
if (mediaPlayer.isPlaying())
{
mediaPlayer.pause();
bPaused=true;
mnuPause.setVisible(false);
mnuPlay.setVisible(true);
mnuStop.setVisible(true);
mnuProgressBar.setVisible(false);
Toast.makeText(MainActivity.this, "Paused!", Toast.LENGTH_SHORT).show();
}
break;
case R.id.actionStop:
if (mediaPlayer.isPlaying() || bPaused)
{
Toast.makeText(this, "Stopping...", Toast.LENGTH_LONG).show();
mediaPlayer.stop();
mediaPlayer.release();
bConnected = false;
bPaused=false;
bShouldPlay = false;
mnuPlay.setVisible(true);
mnuPause.setVisible(false);
mnuStop.setVisible(false);
mnuProgressBar.setVisible(false);
Toast.makeText(this, "Stopped!", Toast.LENGTH_LONG).show();
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
當我上播放按鈕,點擊它,然後顯示文本我已經寫在標題..我所需要的圓形進度條而不是文本還有一件事如何設置錯誤messages.for例如,如果流不可用意味着脫機,然後如何連接後幾分鐘將顯示消息給用戶的流不可用..
只是刪除** **所有權屬性,如果你只想顯示進度條 – sodhankit
@sodhankit我試了一下,然後就什麼都不顯示.. – Parv
請檢查連結http://計算器.com/questions/21333866/how-to-create-a-circular-progressbar-in-android-which-rotate-on-it – Pranita