Как использовать background, backgroundTint и backgroundTintMode в устройствах, предшествующих Lollipop
Я использую
<?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:background="@drawable/background_sign_up"
android:backgroundTint="@color/colorTranslucent"
android:backgroundTintMode="multiply"
android:orientation="vertical"
android:weightSum="10">
а также
<color name="colorTranslucent">#dd282d50</color>
Но это работает в 21 и выше. Я хочу это в API 17 и 19. Я расширяю активность.
2 ответа
Чтобы обойти API 21 и выше для моего фонового оттенка, я просто положил View
как первый пункт в моем макете. Так чисто XML. В этом представлении я буду манипулировать фоном, а не оттенком, используя прозрачный цвет. Например
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.HomeFragment"
android:id="@+id/frameLayout"
android:background="@drawable/planeWing">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/semiTransparentDarkBlue">
</View>
<TextView
android:id="@+id/greeting_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="@string/greeting_hello"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView"
app:layout_constraintVertical_bias="0.0" />
</android.support.constraint.ConstraintLayout>
Я не уверен насчет метода умножения, который вы использовали.
Я использовал:
linearLayout= (LinearLayout) findViewById(R.id.linearLayout);
linearLayout.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorTranslucent), PorterDuff.Mode.MULTIPLY);
и он работал в API 17, и я даже удалил его из XML, он также работает в API 25. Благодарю.