I have a simple TextView inside a CardView (which acts as a button):
<androidx.cardview.widget.CardView
android:id="@+id/cvTestType"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
app:cardCornerRadius="5dp"
app:cardElevation="10dp">
<TextView
android:id="@+id/tvTestType"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textStyle="bold"
android:textSize="15sp" />
</androidx.cardview.widget.CardView>
I'm trying to set a transparent png background to the button as follows:
private fun TextView.setTestTypeTextView(testType: TestTypeDTO) {
val buttonFontSize = this.context.prefsByScreenDensity()[3]
this.height = buttonsHeight
this.text = testType.testTypeName.uppercase(Locale.getDefault())
this.setTextSize(TypedValue.COMPLEX_UNIT_SP, buttonFontSize.toFloat())
this.setTextColor(Color.parseColor(props.appearance.colors.appColor))
this.setBackgroundResource(R.drawable.button_act_background)
}
And the problem is, as it can be seen in the screenshot, that using a transparent png as a background is not working, it just displays the button in white with no background at all, it only works when using a non-transparent background.
The PNG is created (and exported) with Gimp and it can be perfectly seen using the Android Studio preview.
Any help?
Edit 1:
Tried different transparent PNGs and noticed that with another PNG I can see the drawing, but the background is still white.
The root cause is that you are seeing the background of your CardView which seems to be white with your Theme. You can change it using app:cardBackgroundColor="@color/yourColor"
.