更改Nine-Patch的颜色,将其设置为ConstraintLayout的背景

时间:2017-10-29 20:22:50

标签: android android-layout android-view nine-patch android-constraintlayout

非常生气的问题:

我正在尝试更改设置为ConstraintLayout背景的Nine-Patch的颜色。 XML中的android:backgroundTint工作正常,但只有Android 5.0+支持。使用app:backgroundTint代替android:backgroundTint不会改变颜色。

我的XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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="29dp"
    android:background="@drawable/round"

    android:backgroundTint="@android:color/darker_gray">
</android.support.constraint.ConstraintLayout>

有谁知道改变颜色的另一种方法? 感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

我刚刚找到答案:

onCreate()方法中的

View line = findViewById(R.id.line);
ColorStateList tint = ColorStateList.valueOf(ContextCompat.getColor(this, android.R.color.holo_blue_light));
ViewCompat.setBackgroundTintList(line, tint);

感谢@azizbekian的建议。

答案 1 :(得分:0)

你可以像这样添加一个framelayout:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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="29dp"
    android:background="@drawable/round"

    android:backgroundTint="@android:color/darker_gray">

<FrameLayout
            android:id="@+id/framelayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/whitebackground" // change the color as desired
          />


</android.support.constraint.ConstraintLayout>

我认为这将解决您的问题。否则你可以在Github上找到一个好的图书馆。