我正在尝试更改设置为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>
有谁知道改变颜色的另一种方法? 感谢任何帮助。
答案 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上找到一个好的图书馆。