如何在前Lollipop设备

时间:2017-06-12 11:47:54

标签: android user-interface background android-linearlayout tint

我正在使用

<?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 个答案:

答案 0 :(得分:1)

我用过:

linearLayout= (LinearLayout) findViewById(R.id.linearLayout);
linearLayout.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorTranslucent), PorterDuff.Mode.MULTIPLY);

它在API 17中工作,我甚至从xml中删除它,它也在API 25中工作。感谢。

答案 1 :(得分:0)

为了规避api 21及以上的背景色调,我只需将View作为我布局中的第一项。如此纯粹的xml。在这个视图中,我将使用透明颜色操纵背景而不是色调。 E.g

<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>

我不确定您使用的乘法方法。