可从进度条封面文本视图中绘制
drawable from progress bar cover text view
我有一个进度条,需要在上面放一些文字。我一直在寻找解决方案,但 none 有效。我已经意识到覆盖我的 Textview 的是我进度条中的抽屉(如果我删除它,文本是可见的)
这是我的布局代码:
<RelativeLayout
android:id="@+id/progressbarContainer"
android:layout_width="match_parent"
android:layout_height="30dp"
android:gravity="center_vertical">
<!-- BARRA DE PROGRESSO DOS MEMES -->
<ProgressBar
android:elevation="10dp"
android:id="@+id/progressBar"
style="@style/myProgressBar"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:progressDrawable="@drawable/progress_bar"/>
<TextView
android:background="#00000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/progressBar"
android:layout_alignTop="@+id/progressBar"
android:layout_alignEnd="@+id/progressBar"
android:layout_alignStart="@+id/progressBar"
android:layout_above="@+id/progressBar"
android:text="00:99"
android:textColor="#ff0000"/>
</RelativeLayout>
这是我的可绘制对象 xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id = "@android:id/background">
<shape>
<corners android:radius="10dp"/>
<solid android:color="#ffff"/>
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="10dp" />
<solid android:color="@color/progressBlue"/>
</shape>
</clip>
</item>
</layer-list>
进度条样式只有 "Base.Widget.AppCompat.ProgressBar.Horizontal" 作为其父项以及最大和最小高度。我已经更改了那些,这似乎不是问题所在。
您已将进度条的宽度设置为 android:layout_width="match_parent"
尝试将其设置为 wrap_content
并检查。
您有 2 个选择。
选项 1: 从 xml 文件中的 ProgressBar 中删除 android:elevation="10dp"
。
<ProgressBar
android:id="@+id/progressBar"
style="@style/myProgressBar"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:progressDrawable="@drawable/progress_bar"/>
选项 2: 如果要为 ProgressBar 保留 android:elevation="10dp"
,则在 xml 文件中为 TextView 添加 android:elevation="11dp"
。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/progressbarContainer"
android:layout_width="match_parent"
android:layout_height="30dp" android:gravity="center_vertical">
<!-- BARRA DE PROGRESSO DOS MEMES -->
<ProgressBar
android:elevation="10dp"
android:id="@+id/progressBar"
style="@style/myProgressBar"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:progressDrawable="@drawable/progress_bar"/>
<TextView
android:elevation="11dp"
android:background="#00000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/progressBar"
android:layout_alignTop="@+id/progressBar"
android:layout_alignEnd="@+id/progressBar"
android:layout_alignStart="@+id/progressBar"
android:layout_above="@+id/progressBar"
android:text="00:99"
android:textColor="#ff0000"/>
</RelativeLayout>
您可以查看此 post 以了解 android:elevation
在 Android 中的工作原理。
我有一个进度条,需要在上面放一些文字。我一直在寻找解决方案,但 none 有效。我已经意识到覆盖我的 Textview 的是我进度条中的抽屉(如果我删除它,文本是可见的) 这是我的布局代码:
<RelativeLayout
android:id="@+id/progressbarContainer"
android:layout_width="match_parent"
android:layout_height="30dp"
android:gravity="center_vertical">
<!-- BARRA DE PROGRESSO DOS MEMES -->
<ProgressBar
android:elevation="10dp"
android:id="@+id/progressBar"
style="@style/myProgressBar"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:progressDrawable="@drawable/progress_bar"/>
<TextView
android:background="#00000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/progressBar"
android:layout_alignTop="@+id/progressBar"
android:layout_alignEnd="@+id/progressBar"
android:layout_alignStart="@+id/progressBar"
android:layout_above="@+id/progressBar"
android:text="00:99"
android:textColor="#ff0000"/>
</RelativeLayout>
这是我的可绘制对象 xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id = "@android:id/background">
<shape>
<corners android:radius="10dp"/>
<solid android:color="#ffff"/>
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="10dp" />
<solid android:color="@color/progressBlue"/>
</shape>
</clip>
</item>
</layer-list>
进度条样式只有 "Base.Widget.AppCompat.ProgressBar.Horizontal" 作为其父项以及最大和最小高度。我已经更改了那些,这似乎不是问题所在。
您已将进度条的宽度设置为 android:layout_width="match_parent"
尝试将其设置为 wrap_content
并检查。
您有 2 个选择。
选项 1: 从 xml 文件中的 ProgressBar 中删除 android:elevation="10dp"
。
<ProgressBar
android:id="@+id/progressBar"
style="@style/myProgressBar"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:progressDrawable="@drawable/progress_bar"/>
选项 2: 如果要为 ProgressBar 保留 android:elevation="10dp"
,则在 xml 文件中为 TextView 添加 android:elevation="11dp"
。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/progressbarContainer"
android:layout_width="match_parent"
android:layout_height="30dp" android:gravity="center_vertical">
<!-- BARRA DE PROGRESSO DOS MEMES -->
<ProgressBar
android:elevation="10dp"
android:id="@+id/progressBar"
style="@style/myProgressBar"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:progressDrawable="@drawable/progress_bar"/>
<TextView
android:elevation="11dp"
android:background="#00000000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/progressBar"
android:layout_alignTop="@+id/progressBar"
android:layout_alignEnd="@+id/progressBar"
android:layout_alignStart="@+id/progressBar"
android:layout_above="@+id/progressBar"
android:text="00:99"
android:textColor="#ff0000"/>
</RelativeLayout>
您可以查看此 post 以了解 android:elevation
在 Android 中的工作原理。