Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 设置晶圆厂图标颜色_Android_Floating Action Button - Fatal编程技术网

Android 设置晶圆厂图标颜色

Android 设置晶圆厂图标颜色,android,floating-action-button,Android,Floating Action Button,当前晶圆厂 我想知道如何将com.android.support:design:22.2.0库提供的FAB(浮动操作按钮)小部件的图标颜色从绿色更改为白色 style.xml <resources> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/color_primary</item>


当前晶圆厂

我想知道如何将com.android.support:design:22.2.0库提供的FAB(浮动操作按钮)小部件的图标颜色从绿色更改为白色

style.xml

<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/accent</item>

</style>
<color name="color_primary">#00B33C</color>
<color name="color_primary_dark">#006622</color>
<color name="accent">#FFB366</color>
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <include android:id="@+id/toolbar" layout="@layout/toolbar" />

    <TextView android:id="@+id/text"
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:paddingTop="16dp"
        android:textSize="20sp" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:paddingTop="8dp"
        android:paddingBottom="16dp" />

</LinearLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:src="@android:drawable/ic_input_add"
    android:layout_margin="24dp"
    app:elevation="6dp"
    app:pressedTranslationZ="12dp"
    app:borderWidth="0dp" />

@彩色/彩色原色
@颜色/原色\u深色
@颜色/口音
#00B33C
#006622
#FFB366

活动\u main.xml

<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primary_dark</item>
    <item name="colorAccent">@color/accent</item>

</style>
<color name="color_primary">#00B33C</color>
<color name="color_primary_dark">#006622</color>
<color name="accent">#FFB366</color>
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <include android:id="@+id/toolbar" layout="@layout/toolbar" />

    <TextView android:id="@+id/text"
        android:text="@string/hello_world"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:paddingTop="16dp"
        android:textSize="20sp" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:paddingTop="8dp"
        android:paddingBottom="16dp" />

</LinearLayout>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:src="@android:drawable/ic_input_add"
    android:layout_margin="24dp"
    app:elevation="6dp"
    app:pressedTranslationZ="12dp"
    app:borderWidth="0dp" />


更新2


如果您使用的是
com.google.android.material.floatingactionbutton.floatingactionbutton
,请使用
app:tint

app:tint=“@android:color/white”
更新

参考@Saleem Khan的答案,这是使用以下方法设置色调的标准方法:

android:tint=“@android:color/white”
在FAB上通过XML

OLD(2015年6月)

这个答案是在2015年10月之前写的,当时只有API>=21才支持FAB上的android:tint

您可以使用ColorFilter以编程方式更改它

//get the drawable
Drawable myFabSrc = getResources().getDrawable(android.R.drawable.ic_input_add);
//copy it in a new one
Drawable willBeWhite = myFabSrc.getConstantState().newDrawable();
//set the color filter, you can use also Mode.SRC_ATOP
willBeWhite.mutate().setColorFilter(Color.WHITE, PorterDuff.Mode.MULTIPLY);
//set it to your fab button initialized before
myFabName.setImageDrawable(willBeWhite);

使用android:tint属性可以如下设置颜色

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:tint="@android:color/white"
    android:src="@android:drawable/ic_input_add"
   />

使用谷歌设计网站上的白色版本

android:tint
看起来像是一个干净的解决方案,但它在API级别21以下不受支持


使用位图比试图以编程方式更改现有图标的颜色更简单。复杂性越低,需要测试的内容就越少:)

这比获取可绘制的内容更容易,您只需访问颜色过滤器并将其设置为所需的颜色即可

FloatingActionButton myFab = (FloatingActionButton) findViewById(R.id.myfabid);

myFab.setColorFilter(Color.WHITE);

由于
FloatingActionButton
扩展了
ImageView
,我们可以使用
ImageViewCompat
为图标着色:

ImageViewCompat.setImageTintList(
    floatingActionButton,
    ColorStateList.valueOf(Color.WHITE)
);

如果您使用的是
材料组件

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="16dp"
    android:layout_gravity="bottom|end"
    app:fabSize="normal"
    app:tint="@color/colorAccent"
    app:srcCompat="@drawable/ic_google"/>


如果要使用图标默认颜色,请更改
app:tint=“@null”

如果您使用的是material FAB,则可以使用Kotlin中的以下代码以编程方式设置其样式

fab.supportImageTintList = ContextCompat.getColorStateList(context, R.color.fab_icon_tint)

您必须更改
app:tint
,才能使其正常工作
android:tint
没有为我做任何更改。

如果您使用material FAB,请使用app:tint来更改图标的颜色,而不是android:tint

如果您想更改折叠工具栏布局中图标的颜色,请使用以下代码

app:tint=“@color/white”

使用应用程序而不是Android


 <com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/add_loan"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/medium"
    android:layout_marginBottom="16dp"
    android:backgroundTint="@color/ci_blue"
    android:theme="@style/fabtheme"
    app:srcCompat="@drawable/ic_baseline_add_24"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1"
    app:layout_constraintStart_toStartOf="parent"
    app:rippleColor="@color/white" />
主题


@颜色/白色

使用属性


app:tint=“@color/white”

您可以自定义样式:

<style name="FloatingButton" parent="Widget.MaterialComponents.FloatingActionButton">
        <item name="colorSecondary">@color/red</item>
        <item name="colorOnSecondary">@color/white</item>
</style>

@颜色/红色
@颜色/白色
其中colorSecondary是背景,colorOnSecondary是按钮可绘制的颜色

<com.google.android.material.floatingactionbutton.FloatingActionButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_phone"
            android:theme="@style/FloatingButton" />

*.java文件
私有浮动操作按钮登录;
login=findviewbyd(R.id.loginbtn);
login.setColorFilter(android.R.color.white);
//-------------------------------------------//
.XML文件**强文本**
*

如果您使用的是
com.google.android.material.floatingactionbutton.floatingactionbutton

然后

  • 要更改浮动操作按钮的背景色,请使用应用程序:背景色

  • 要更改浮动操作按钮的图标颜色,请使用
    app:tint

  • 要更改浮动操作按钮的图标可绘制,请使用
    app:srcCompat

     <com.google.android.material.floatingactionbutton.FloatingActionButton
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     app:backgroundTint="@color/white"
     app:srcCompat="@drawable/fb_icon"
     app:tint="@android:color/black" />
    
    
    
  • 试试这个代码

        <com.google.android.material.floatingactionbutton.FloatingActionButton
           android:id="@+id/fab"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="bottom|end"
           android:backgroundTint="@color/sm_blue"
           app:tint="@color/white"
           android:layout_margin="@dimen/fab_margin"
           app:srcCompat="@android:drawable/ic_input_add" />
    
    
    
    结果

    我以编程方式更改晶圆厂图标颜色的解决方案是,此解决方案适用于api级别21以上

    val fab = FloatingActionButton(requireContext())
     fab.apply {
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            imageTintList = ColorStateList.valueOf(Color.WHITE)
     }
    


    在顶部设置
    PorterDuff.Mode.SRC_
    并使用
    Drawable myFabSrc=ResourcesCompat.getDrawable(getResources(),android.R.Drawable.ic_input_add,getTheme())时,它会工作您的解决方案太复杂。只需使用android:tint=“@android:color/white”它并不复杂@mahdielmasoudi。有时和大多数情况下,在一些用例中,它必须通过编程进行更新!用户需要尽可能减少开销。如果您使用
    com.google.android.material
    包中的
    FloatingActionButton
    ,您应该添加
    app:tint
    而不是
    android:tint
    。使用
    app:tint=“@android:color/white”
    这对我帮助很大,比编程简单得多。不小心在这里看到了你的照片。好的解决方案(Saleem.:-)这样一个干净的解决方案
    android:tint
    似乎只在API级别21及以上版本中受支持:(@alexbirkett除外FloatingActionButton是此处支持库的一部分,并且似乎也在较旧的API上实现了它(使用API 16进行了尝试)在我看来,似乎
    android:tint
    适用于支持库中定义的
    android.support.design.widget.FloatingActionButton
    ,即使是在较低API级别的设备上,我刚刚在JellyBean图像(API 16)上测试了它。我不知道为什么它被否决了,这是正确的解决方案,应该是被接受的答案。在片段
    yourFab.setColorFilter(getResources().getColor(R.color.red))中使用它
    如何在xml或样式中设置FAB颜色?@roghaehosseini
    android:tint
    适用于API 21及以上版本。如果您使用支持库
    android.support.design.widget.FloatingActionButton
    使用app:tint来支持21以下的API,这是可行的,如果您想切换图标,这是通过代码实现的最佳方法之一颜色!谢谢!我试过使用setImageResource,使用相同的绘图工具和不同的颜色,但没有锻炼。这是我使用
    应用程序:backgroundTint=“
    作为背景颜色和
    应用程序:tint=“”的最佳方法
    寻找图像色调。我找了大约30分钟,直到我意识到它不应该是
    android:tint
    ,而是
    app:tint
    'app:tint=“@null”save my day:)完美,谢谢