Java 如何创建自定义ProgressBar
编辑:Java 如何创建自定义ProgressBar,java,android,android-studio,android-progressbar,Java,Android,Android Studio,Android Progressbar,编辑: 问题1)已解决。但我仍然无法更改ProgressBar的color。我尝试使用我自己的主题(参见下面的代码) 我希望我的ProgressBar看起来像下图。我已经在我的列表视图上创建了一个进度条。我正在使用一个列表视图,进度条,以及两个文本视图 我的问题: 1.)如何以如下所示的方式将进度条上方的文本视图对齐? 2.)如何设置ProgressBar本身的颜色和ProgressBar的背景色 MainActivity.xml <ProgressBar android:
问题1)已解决。但我仍然无法更改
ProgressBar
的color
。我尝试使用我自己的主题
(参见下面的代码)
我希望我的ProgressBar
看起来像下图。我已经在我的列表视图
上创建了一个进度条
。我正在使用一个列表视图
,进度条
,以及两个文本视图
我的问题:
1.)如何以如下所示的方式将进度条上方的文本视图对齐?
2.)如何设置ProgressBar
本身的颜色和ProgressBar
的背景色
MainActivity.xml
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progressBarText"
android:progress="0"
android:max="100"
android:paddingTop="0dp"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:theme="@style/progressBarTheme"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"/>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@android:color/holo_green_dark</item>
</style>
<style name="progressBarTheme" parent="@style/Theme.AppCompat">
<item name="colorAccent">@color/myRedColor</item>
</style>
</resources>
styles.xml
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progressBarText"
android:progress="0"
android:max="100"
android:paddingTop="0dp"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:theme="@style/progressBarTheme"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"/>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="DialogTheme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">@android:color/holo_green_dark</item>
</style>
<style name="progressBarTheme" parent="@style/Theme.AppCompat">
<item name="colorAccent">@color/myRedColor</item>
</style>
</resources>
@颜色/原色
@颜色/原色暗
@颜色/颜色重音
@安卓:彩色/全息绿/深色
@颜色/我的红色
1.)如何以如下所示的方式将进度条上方的文本视图对齐
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<ProgressBar
android:id="@+id/progressCircle"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
<TextView
android:id="@+id/txtvStatusCircle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/progressCircle"
android:layout_alignParentStart="true"
android:text="Daily Progress"
android:textSize="18sp" />
<TextView
android:id="@+id/txtPercent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/progressCircle"
android:layout_alignParentEnd="true"
android:text="0 %"
android:textSize="18sp" />
</RelativeLayout>
然后在xml中设置为ProgressBar
主题:
<ProgressBar
...
android:theme="@style/progressBarBlue" />
我会成功的
输出:
试试这个:
<android.support.constraint.ConstraintLayout
android:id="@+id/uplaodFile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/upload"
android:layout_marginTop="10dp"
>
<ImageView
android:id="@+id/imageView2"
android:layout_width="46dp"
android:layout_height="65dp"
android:src="@drawable/file_image"
app:layout_constraintEnd_toStartOf="@+id/horizontal_progress_bar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/notification" />
<TextView
android:id="@+id/notification"
android:layout_width="282dp"
android:layout_height="22dp"
android:layout_marginBottom="2dp"
android:text="File Detail"
app:layout_constraintBottom_toTopOf="@+id/cancel"
app:layout_constraintStart_toStartOf="@+id/horizontal_progress_bar"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints" />
<ProgressBar
android:id="@+id/horizontal_progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="201dp"
android:layout_height="26dp"
android:layout_marginEnd="8dp"
android:layout_marginTop="24dp"
android:indeterminate="false"
android:max="100"
android:minHeight="100dp"
android:progress="2"
android:progressBackgroundTint="#aaaaaa"
app:layout_constraintEnd_toStartOf="@+id/cancel"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints" />
<TextView
android:id="@+id/process_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="40dp"
android:text="uploading.. 10%"
android:textAlignment="center"
android:textColor="#4B74FF"
android:textSize="10dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.833"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints" />
<ImageView
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="36dp"
android:layout_marginEnd="10dp"
android:src="@drawable/ic_close_black_24dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
tools:ignore="MissingConstraints" />
</android.support.constraint.ConstraintLayout>
这改变了进度条的颜色
progressBar.getProgressDrawable().setColorFilter(
Color.RED, android.graphics.PorterDuff.Mode.SRC_IN);
这将是一个复合视图谢谢:)我明天将尝试添加第二个文本视图,它在右侧显示百分比?它与我的其他文本视图重叠,颜色没有变化。请检查我的更新答案。我刚刚添加了:android:layout\u alignParentEnd=“true”
到另一个TextView
:)您是否在style.xml
中使用了已更改的AccentColor
?但是,您也可以尝试使用这个答案:setProgressTintList需要API级别21。我的设备有API 19。试试这个,希望对你有帮助。
progressBar.getProgressDrawable().setColorFilter(
Color.RED, android.graphics.PorterDuff.Mode.SRC_IN);