您好我想根据总分钟设置水平进度条宽度。
例如
总小时数7小时30分钟 - > 450分钟
XML
<ProgressBar
android:id="@+id/progress_bar_total_sleep"
style="@style/SleepProgressFill"
android:layout_width="270dp"
android:layout_height="wrap_content"/>
请提出任何建议
答案 0 :(得分:0)
int minutes=450;
int total = (int) ((timePassed/ minutes) * 100);
progressbar.setProgress(total);
答案 1 :(得分:0)
我认为你应该尝试使用SeekBar,
<SeekBar
android:id="@+id/seekbar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:indeterminateDrawable="your drawable"
android:progressDrawable="your drawable"
android:thumb="your drawable" />
你必须设置你从mediaPlayer获取持续时间的持续时间id,或者只是获取持续时间并将其放在这里:
seekBar.setMax(mediaPlayer.getDuration());
和听众:
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean
fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
这是你想要的或我不理解你......
答案 2 :(得分:0)
试试这种方式
progressBar.setLayoutParams(new LinearLayout.LayoutParams(100, 10));
这里100是宽度,10是高度
而不是100将您的总分钟数作为整数
答案 3 :(得分:0)
您可以使用MAX
和ProgressBar
使用属性ProgressBar.setMax(MAX_VALUE)
中的JAVA
方法设置XML
android:max="MAX_VALUE"
的值。
您需要设置Progress
ProgressBar
的值以显示进度。您可以使用ProgressBar.setProgress(PROGRESS_VALUE)
中的方法JAVA
和XML
使用属性android:progress="PROGRESS_VALUE"
来完成此操作。
以下是一个示例: (From XML)
<ProgressBar
android:id="@+id/progress_bar_total_sleep"
android:layout_width="270dp"
android:layout_height="wrap_content"
android:max="1000"
android:progress="450"
style="?android:attr/progressBarStyleHorizontal" />
如果要以编程方式更改MAX和Progress值,请尝试以下操作:
ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar_total_sleep);
// Max Minute
progressBar.setMax(1000);
// Progress Minute
progressBar.setProgress(450);
<强>输出:强>
希望这会有所帮助〜