Android Studio中图片背景上方白色文字无法显示的问题求助
解决白色文字在图片背景上不显示的问题
这个问题我之前也踩过坑,核心原因是你错误使用了foreground属性设置背景图,导致文字被完全覆盖了!下面给你详细分析和解决方案:
问题根源
你给父ConstraintLayout设置了android:foreground="@drawable/home_bg"——foreground属性的作用是在布局的所有子View之上绘制内容,相当于给整个布局盖了一层图,你的白色TextView自然被这层图挡住,完全看不到了。另外父布局里的android:color="@color/white"、android:textSize="30dp"、android:textStyle="bold"都是无效属性(ConstraintLayout不是文本控件,也没有android:color这个属性),完全可以删掉。
解决方案
只需要把前景属性改成背景属性,调整后文字就能正常显示在图片上方:
- 替换
android:foreground="@drawable/home_bg"为android:background="@drawable/home_bg"(背景图会绘制在子View的最底层,不会遮挡文字) - 移除父布局里所有无效的属性(
android:color、android:textSize、android:textStyle)
修改后的完整XML代码
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="410dp" android:layout_height="250dp" android:background="@drawable/home_bg" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Encontre o seu próximo destino!" android:textColor="@android:color/white" android:textSize="20dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.32" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.233" /> <TextView android:id="@+id/textView2" android:layout_width="176dp" android:layout_height="41dp" android:layout_marginBottom="64dp" android:text="Procurar Destinos" android:textColor="#FFFFFF" android:textSize="20dp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.324" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" app:layout_constraintVertical_bias="0.742" /> </androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
额外小提示
- 如果你需要给布局添加前景(比如点击遮罩、状态层),再用
foreground属性,普通背景图一定用background - 可以给TextView添加
android:shadowColor="#000000"、android:shadowRadius="2"属性,让白色文字在深色背景上更清晰哦
内容的提问来源于stack exchange,提问作者Android Programmer
相关产品推荐
相关产品推荐

