如何在右侧(末端)制作带圆角的进度条,而不仅仅是在左侧(开始)。我目前所拥有的几乎就是我想要的布局,但进度条加载器只是一条直线垂直线,我想让这条线四舍五入。
答案 0 :(得分:1)
基本上你应该制作一个自定义小部件,这样你就可以根据自己的喜好自定义它。
这是一个关于你正在寻找什么的教程。 link!
答案 1 :(得分:0)
所以我最终在xml中做了这个:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/white"
android:id="@+id/splash_linear">
<FrameLayout
android:layout_width="144dp"
android:layout_height="13dp"
android:layout_gravity="center"
android:layout_marginTop="20dp">
<View android:id="@+id/progress_horizontal"
android:background="@drawable/progress_background"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<View android:id="@+id/progress_horizontal_bar"
android:background="@drawable/progress_bar"
android:layout_width="0dp"
android:layout_height="match_parent"/>
</FrameLayout>
</LinearLayout>
然后在代码中:
public void updateProgress(int percent) {
int progressBarSizeDp = 144; // the size of the progressbar
float scale = (float) (progressBarSizeDp/100.0);
int progressSize = (int) (percent * scale);
if(progressSize > progressBarSizeDp) {
progressSize = progressBarSizeDp;
} else if(progressSize < 20) {
progressSize = 20;
}
View progressBar = (View) findViewById(R.id.progress_horizontal_bar);
int py = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, progressSize, getResources().getDisplayMetrics());
LayoutParams params = new FrameLayout.LayoutParams(py, LayoutParams.MATCH_PARENT);
progressBar.setLayoutParams(params);
View splashMain = (View) findViewById(R.id.splash_linear);
splashMain.invalidate();
}
答案 2 :(得分:0)