Android เปลี่ยนสีปุ่มการดำเนินการลอยตัว


531

ฉันพยายามเปลี่ยนสีของปุ่มการดำเนินการลอยตัวของวัสดุ แต่ไม่ประสบความสำเร็จ

<android.support.design.widget.FloatingActionButton
    android:id="@+id/profile_edit_fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="16dp"
    android:clickable="true"
    android:src="@drawable/ic_mode_edit_white_24dp" />

ฉันพยายามเพิ่ม:

android:background="@color/mycolor"

หรือผ่านรหัส:

FloatingActionButton fab = (FloatingActionButton) rootView.findViewById(R.id.profile_edit_fab);
fab.setBackgroundColor(Color.parseColor("#mycolor"));

หรือ

fab.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#mycolor")));

แต่ไม่มีการทำงานใด ๆ ข้างต้น ฉันได้ลองวิธีแก้ปัญหาในคำถามที่ซ้ำกันที่เสนอ แต่ไม่มีวิธีใดที่ใช้งานได้ ปุ่มยังคงเป็นสีเขียวและกลายเป็นสี่เหลี่ยมจัตุรัส

ป.ล. มันก็เป็นการดีที่จะรู้วิธีเพิ่มเอฟเฟกต์ระลอกคลื่นไม่เข้าใจเช่นกัน



ผลกระเพื่อมไม่สามารถใช้ได้บนอุปกรณ์ก่อนอมยิ้มเพราะใช้ใหม่RenderThread
tachyonflux

@karaokyo ok แต่ฉันจะทำยังไงดีล่ะ?
Jjang

27
Google ทำงานได้ไม่ดีจริง ๆ ในความคิดของฉันเพื่อทำให้สิ่งเหล่านี้เป็นที่จดจำ
Joop

หากต้องการทำสิ่งนี้โดยใช้โปรแกรมและย้อนกลับให้ดูstackoverflow.com/questions/30966222/…
Ralph Pina

คำตอบ:


1049

ตามที่อธิบายไว้ในเอกสารโดยปกติจะใช้เวลาชุดสีในstyles.xmlแอตทริบิวต์colorAccent

สีพื้นหลังของมุมมองนี้จะใช้ค่าเริ่มต้นเป็น colorAccent ของชุดรูปแบบของคุณ หากคุณต้องการเปลี่ยนแปลงสิ่งนี้ในขณะทำงานคุณสามารถทำได้ผ่าน setBackgroundTintList (ColorStateList)

หากคุณต้องการเปลี่ยนสี

  • ใน XML ด้วยแอปคุณลักษณะ: backgroundTint
<android.support.design.widget.FloatingActionButton
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_add"
    app:backgroundTint="@color/orange"
    app:borderWidth="0dp"
    app:elevation="6dp"
    app:fabSize="normal" >
  • ในรหัสด้วย. setBackgroundTintList (คำตอบด้านล่างโดยywwynm )

ดังที่ @Dantalian พูดถึงในความคิดเห็นหากคุณต้องการเปลี่ยนสีไอคอนสำหรับ Library Support Design สูงสุด v22 (รวม)คุณสามารถใช้

android:tint="@color/white"     

สำหรับห้องสมุดสนับสนุนการออกแบบตั้งแต่ v23คุณสามารถใช้:

app:tint="@color/white"   

นอกจากนี้ยังมีandroidXไลบรารีที่คุณต้องการตั้งค่าขอบ 0dp ในเค้าโครง xml ของคุณ:

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_add"
    app:backgroundTint="@color/orange"
    app:borderWidth="0dp"
    app:elevation="6dp"
    app:fabSize="normal" />

24
สิ่งนี้ไม่ทำงานใน Design Support Library v23 สำหรับอุปกรณ์ <API 12 มันทำงานใน v22 ดังนั้นพวกเขาจึงทำอะไรบางอย่างที่ชัดเจน
hungryghost

4
โปรดทราบว่าหากคุณต้องการเปลี่ยนสีของภาพเป็นสีขาวคุณสามารถใช้: android: tint = "@ android: color / white"
Dantalian

1
android: tint = "@ color / white" ใช้งานไม่ได้สำหรับฉันเพราะมันไม่สามารถแก้ไขได้ด้วยเหตุผลบางประการ android: tint = "# ffffff" ใช้ได้กับฉันแม้ว่า
realappie

2
นั่นเป็นเพราะ @ color / white ไม่มีอยู่ใน colors.xml ของคุณ ใช้ @android: color / white หรือสร้างสีที่มีชื่อว่า white หรืออะไรก็ได้ที่คุณต้องการ
Dantalian

227
ใช้ "แอพ: backgroundTint" ไม่ใช่ "android: backgroundTint"
Vasil Valchev

244

คำตอบของ Vijet Badigannavar นั้นถูกต้อง แต่การใช้ColorStateListมักจะซับซ้อนและเขาไม่ได้บอกเราว่าต้องทำอย่างไร เนื่องจากเรามักจะเน้นที่การเปลี่ยนViewสีในสภาวะปกติและกดฉันจะเพิ่มรายละเอียดเพิ่มเติม:

  1. หากคุณต้องการเปลี่ยนFABสีในสภาวะปกติคุณสามารถเขียนได้

    mFab.setBackgroundTintList(ColorStateList.valueOf(your color in int));
  2. หากคุณต้องการเปลี่ยนFABสีในสถานะที่ถูกกดขอบคุณสำหรับ Design Support Library 22.2.1คุณสามารถเขียนได้

    mFab.setRippleColor(your color in int);

    โดยการตั้งค่าแอตทริบิวต์นี้เมื่อคุณยาวกดเป็นระลอกที่มีสีของคุณจะปรากฏที่จุดสัมผัสของคุณและเปิดเผยเข้าไปในพื้นผิวทั้งหมดของFAB FABโปรดสังเกตว่ามันจะไม่เปลี่ยนFABสีในสภาวะปกติ ด้านล่าง API 21 (Lollipop) ไม่มีผลกระเพื่อม แต่FABสีของจะยังคงเปลี่ยนเมื่อคุณกด

ท้ายที่สุดถ้าคุณต้องการใช้เอฟเฟ็กต์ที่ซับซ้อนมากขึ้นสำหรับรัฐคุณควรเจาะลึกลงไปColorStateListนี่คือคำถาม SO ที่พูดถึงมัน: ฉันจะสร้าง ColorStateList โดยทางโปรแกรมได้อย่างไร.

อัปเดต: ขอบคุณสำหรับความคิดเห็นของ @ Kaitlyn ในการลบลายเส้นของ FAB โดยใช้ backgroundTint เป็นสีคุณสามารถตั้งค่าapp:borderWidth="0dp"ใน xml ของคุณ


3
ขอบคุณสำหรับสิ่งนี้ฉันไม่ทราบวิธีการใช้ ColorStateList อย่างไรก็ตามรหัสของคุณทำให้ FAB ของฉันมีเส้นขีด (โครงร่าง) ของสีที่เน้นเสียงของชุดรูปแบบ คุณมีความคิดใด ๆ ว่าฉันสามารถลบลายเส้นนั้น (หรือเปลี่ยนสีได้อย่างไร) และมี FAB ในสีพิเศษที่ดูเหมือนว่าสีพิเศษนั้นคือสีที่ถูกเน้น
Kaitlyn Hanrahan

@ KaitlynHanrahan โปรดดูการอัปเดตของฉัน ขอบคุณสำหรับความคิดเห็นของคุณ
ywwynm

มันใช้งานได้สมบูรณ์แบบ - Lollypop และ Kitkat มีลักษณะเหมือนกันแม้ทั้งสองจะมีการแรเงาเล็กน้อยเพื่อให้ FAB ปรากฏกับสีเดียวกันในพื้นหลัง (ฉันมีบางส่วนเหนือ Toolbar) ขอบคุณมาก! มันง่าย แต่ฉันไม่รู้ว่าฉันจะพบสิ่งนั้นด้วยตัวเองหรือไม่
Kaitlyn Hanrahan

มีวิธีการตั้งapp:borderWidthโปรแกรมหรือไม่? ขอบคุณ
arktarke

@ Štarkeเอาละหลังจากดูซอร์สโค้ดของFloatingActionButtonฉันกลัวว่าคุณไม่สามารถตั้งค่าแบบเป็นโปรแกรมได้ในขณะนี้เนื่องจากไม่มีตัวตั้งmBorderWidthค่า
ywwynm

123

ตามที่Vasil Valchevตั้งข้อสังเกตในความคิดเห็นมันง่ายกว่าที่ดู แต่มีความแตกต่างเล็กน้อยที่ฉันไม่ได้สังเกตเห็นใน XML ของฉัน

<android.support.design.widget.FloatingActionButton
    android:id="@+id/profile_edit_fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="16dp"
    android:clickable="true"
    android:src="@drawable/ic_mode_edit_white_24dp"
    app:backgroundTint="@android:color/white"/>

สังเกตว่ามันคือ:

app:backgroundTint="@android:color/white"

และไม่

android:backgroundTint="@android:color/white"

7
สิ่งนี้สำคัญเนื่องจากสิ่งเหล่านี้เป็นสองสิ่งที่แตกต่างอย่างสิ้นเชิง: android:backgroundTint=""มาจากApi ระดับ 21และเป็นส่วนหนึ่งของการออกแบบวัสดุ Lollipop และจะถูกละเว้นด้านล่าง Lollipop นอกจากนี้ยังไม่เปลี่ยนFABสีทั้งหมดเนื่องจากไม่ใช่สีทึบ คุณต้องใช้app:อันใดอันหนึ่งเพื่อทำให้มันใช้งานได้
creativecreatorormaybenot

1
ขอบคุณการใช้android:colorทำให้แอพของฉันพังและมันทำให้ฉันรู้สึกแย่! ขอบคุณสำหรับการบันทึกแอปของฉันและสิ่งที่เหลืออยู่สำหรับสติของฉัน ;-)
Kapenaar

@ Kapenaar ไม่มีปัญหาได้เกาหัวของฉันในขณะที่ก่อนที่จะสังเกตเห็น;)
HenriqueMS

สิ่งนี้จะทำงานได้อย่างเป็นระบบตั้งแต่ทางด้านจาวาไม่มีความแตกต่างเหมือนกับแอพ: และ android: ใน XML
marienke

@marienke คุณสามารถตั้งค่ามันด้วย ColorStatesList, โพสต์คำถามใหม่และโพสต์ลิงก์ที่นี่เพื่อให้สามารถตอบได้;)
HenriqueMS

58

หากคุณพยายามเปลี่ยนสีของ FAB โดยใช้แอพแสดงว่ามีปัญหา กรอบของปุ่มมีสีต่างกันดังนั้นคุณต้องทำอะไร:

app:backgroundTint="@android:color/transparent"

และในรหัสชุดสี:

actionButton.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.white)));

2
ใช้งานได้กับสีปกติ ถ้าฉันได้สีอัลฟ่าเช่น # 44000000 ปัญหาสีเฟรมนั้นสามารถทำซ้ำได้
Dinesh

5
getResources.getColor () เลิกใช้แล้วพิจารณาใช้ ContextCompat.getColor (บริบทสีของคุณ); แทน. หวังว่ามันจะช่วยได้
Tinashe Chinyanga

51

เพียงแค่ใช้

app:backgroundTint="@color/colorPrimary"

อย่าใช้

android:backgroundTint="@color/colorPrimary"

hmmmm สาเหตุนี้การเติมข้อความอัตโนมัติของ android studio ให้ผลการใช้งาน android: backgroundTint คำตอบนี้ดีมาก
Yudi karma

31

โรงงาน Fab colorAccentเป็นสีขึ้นอยู่กับคุณ

<style name="AppTheme" parent="Base.Theme.AppCompat.Light">
    <item name="colorAccent">@color/accent</item>
</style>

ดีสีเริ่มต้นไม่เป็นสีเขียว คุณตั้งค่าสีเขียวที่ใด
tachyonflux

1
ฉันไม่ได้. อย่างที่คุณเห็น xml นี้เป็นที่เดียวที่ฉันตั้งค่าเลย์เอาต์ของปุ่ม ...
Jjang

บางทีคุณควรสร้างโครงการใหม่ด้วยเพียง FAB และโพสต์รหัสสำหรับสิ่งทั้งหมด
tachyonflux

3
ว้าว ... ฉันแค่ขอให้นายทำสิ่งเดียวกันและเจ้าไม่อยากทำ คุณค่อนข้างจะหน้าซื่อใจคดที่จะเชื่อว่ารหัสของคุณเพียงพอ แต่การเพิ่มรหัสของฉันไม่เพียงพอ มันตกลงไปถามเพื่อสร้างMCVE ขอบคุณ
tachyonflux

2
ไม่ได้อีกต่อไปขึ้นอยู่กับคุณสมบัติของชุดรูปแบบการแมปปุ่มการกระทำที่ลอยตอนนี้ (ฉันตรวจสอบตัวเอง) มีสีเป็นcolorSecondary ( com.google.android.material: วัสดุ: 1.1.0-alpha02 )
ievgen

26
mFab.setBackgroundTintList(ColorStateList.valueOf(ContextCompat.getColor(mContext,R.color.mColor)));

นี่คือทางออกที่ง่ายที่สุดวิธีที่ง่ายกว่าการใช้ drawable แบบกำหนดเอง
IgorGanapolsky

16

วิธีแก้ปัญหาอื่นอาจใช้งานได้ นี่คือวิธีลิงกอริลลา 10 ปอนด์ที่มีข้อได้เปรียบในการใช้อย่างกว้างขวางในกรณีนี้และกรณีที่คล้ายกัน:

Styles.xml:

<style name="AppTheme.FloatingAccentButtonOverlay" >
    <item name="colorAccent">@color/colorFloatingActionBarAccent</item>
</style>

เค้าโครง xml ของคุณ:

<android.support.design.widget.FloatingActionButton
       android:theme="AppTheme.FloatingAccentButtonOverlay"
       ...
 </android.support.design.widget.FloatingActionButton>

อืมดูเหมือนว่าสิ่งนี้จะใช้ได้ แต่ฉันได้รับข้อผิดพลาดของคอมไพเลอร์ในไฟล์เลย์เอาString types not allowed (at 'theme' with value 'AppTheme.FloatingAccentButtonOverlay')ต์ บางทีฉันหายไปจุดที่มี styles.xml ที่ ....
สกอตต์บิ๊กส์

@ScottBiggs ใช้android:theme="@style/AppTheme.FloatingAccentButtonOverlay"แต่ solutin นี้ไม่ทำงานสำหรับฉันทางใดทางหนึ่ง ...
jpact

แล้ว API 16 ที่ไม่มี coloarAccent atrribute ล่ะ?
Dushyant Suthar

12

เอกสารแนะนำว่าให้ใช้ @ color / accent เป็นค่าเริ่มต้น แต่เราสามารถลบล้างมันบนโค้ดโดยใช้

fab.setBackgroundTintList(ColorStateList)

ยังจำได้

API ขั้นต่ำในการใช้ไลบรารีนี้คือ 15 ดังนั้นคุณต้องอัปเดต! หากคุณไม่ต้องการที่จะทำมันคุณต้องกำหนด drawable ที่กำหนดเองและตกแต่งมัน!


ได้ผล แต่ฉันต้องตั้งเป้าหมาย api 21+ ถ้าฉันตั้งเป้าหมาย api 8 ไม่สามารถเรียกวิธีนี้ได้
Jjang

เพียงแค่รวมไลบรารีการออกแบบนี้ที่เผยแพร่โดย google "com.android.support:design:22.2.0" สามารถใช้กับอุปกรณ์ที่ไม่ใช่รุ่นอมยิ้ม! ไชโย !!
Vijet Badigannavar

แน่นอนฉันทำ แต่นี่เป็นข้อผิดพลาดในรหัสนี้: โทรต้องใช้ระดับ API 21 (นาทีขั้นต่ำปัจจุบันคือ 8): android.widget.ImageView # setBackgroundTintList
Jjang

API ขั้นต่ำในการใช้ไลบรารีนี้คือ 15 ดังนั้นคุณต้องอัปเดต! ถ้าคุณไม่ต้องการทำมันคุณต้องกำหนด drawable ที่กำหนดเองและตกแต่งมัน!
Vijet Badigannavar

โอ้ขอบคุณ! ฉันไม่รู้คิดว่าเป็น 21 เพราะนี่คือสิ่งที่ความผิดพลาดกล่าว กรุณาโพสต์สิ่งนี้เป็นคำตอบและฉันจะยอมรับมัน!
Jjang

10

การเปลี่ยนสีพื้นหลังของปุ่มการกระทำลอยโดยใช้บรรทัดด้านล่าง

app:backgroundTint="@color/blue"

การเปลี่ยนสีไอคอนปุ่มการดำเนินการลอยตัว

android:tint="@color/white"     

8

ขอบคุณที่เติมข้อความอัตโนมัติ ฉันโชคดีหลังจากได้รับความนิยมและการทดลองไม่กี่ครั้ง:

    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    card_view:backgroundTint="@color/whicheverColorYouLike"

- หรือ - (ทั้งคู่เป็นแบบเดียวกัน)

    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:backgroundTint="@color/whicheverColorYouLike"

สิ่งนี้ใช้ได้กับฉันใน API เวอร์ชัน 17 พร้อมไลบรารีการออกแบบ 23.1.0


8

ฉันได้รับปัญหาเดียวกันและทุกอย่างก็ฉกผมของฉัน ขอบคุณสำหรับ https://stackoverflow.com/a/35697105/5228412

เราทำอะไรได้ ..

 favourite_fab.setImageDrawable(ContextCompat.getDrawable(getBaseContext(), R.drawable.favourite_selected));

มันใช้งานได้ดีสำหรับฉันและต้องการให้ผู้อื่นที่จะมาถึงที่นี่


ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Bhargav Rao

8
 <android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    app:elevation="6dp"
    app:backgroundTint="@color/colorAccent"
    app:pressedTranslationZ="12dp"
    android:layout_margin="@dimen/fab_margin"
    android:src="@drawable/add"/>

โปรดทราบว่าคุณเพิ่มสีใน res / values ​​/ color.xml และรวมถึงแอตทริบิวต์ใน fab ของคุณ

   app:backgroundTint="@color/addedColor"

8

ด้วยวัสดุรูปแบบและส่วนประกอบวัสดุ FloatingActionButtonโดยค่าเริ่มต้นมันต้องใช้สีที่ตั้งอยู่ในแอตทริบิวต์styles.xmlcolorSecondary

  • คุณสามารถใช้app:backgroundTintคุณลักษณะใน xml:
<com.google.android.material.floatingactionbutton.FloatingActionButton
       ...
       app:backgroundTint=".."
       app:srcCompat="@drawable/ic_plus_24"/>
  • คุณสามารถใช้ได้ fab.setBackgroundTintList();

  • คุณสามารถปรับแต่งสไตล์ของคุณโดยใช้แอ<item name="backgroundTint">ททริบิวต์

  <!--<item name="floatingActionButtonStyle">@style/Widget.MaterialComponents.FloatingActionButton</item> -->
  <style name="MyFloatingActionButton" parent="@style/Widget.MaterialComponents.FloatingActionButton">
    <item name="backgroundTint">#00f</item>
    <!-- color used by the icon -->
    <item name="tint">@color/...</item>
  </style>
  • เริ่มจากเวอร์ชัน1.1.0ของส่วนประกอบวัสดุคุณสามารถใช้materialThemeOverlayแอตทริบิวต์ใหม่เพื่อแทนที่สีเริ่มต้นสำหรับส่วนประกอบบางส่วนเท่านั้น:
  <style name="MyFloatingActionButton" parent="@style/Widget.MaterialComponents.FloatingActionButton">
    <item name="materialThemeOverlay">@style/MyFabOverlay</item>
  </style>

  <style name="MyFabOverlay">
    <item name="colorSecondary">@color/custom2</item>
    <!-- color used by the icon -->
    <item name="colorOnSecondary">@color/...</item>
  </style>

ป้อนคำอธิบายรูปภาพที่นี่


7

การแมปแอตทริบิวต์ของชุดรูปแบบใหม่สำหรับปุ่มการกระทำลอยในวัสดุ 1.1.0

ในธีมแอพของคุณ:

  • ตั้ง colorSecondary เพื่อตั้งค่าสีสำหรับพื้นหลังของ FAB (แผนที่เป็น backgroundTint)
  • ตั้งค่า colorOnSecondary เพื่อตั้งค่าสีสำหรับไอคอน / ข้อความและสีระลอกของ FAB (แผนที่เป็นสีอ่อนและ rippleColor)

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <!-- ...whatever else you declare in your app theme.. -->
    <!-- Set colorSecondary to change background of FAB (backgroundTint) -->
    <item name="colorSecondary">@color/colorSecondary</item>
    <!-- Customize colorSecondary to change icon/text of FAB (maps to tint and rippleColor) -->
    <item name="colorOnSecondary">@android:color/white</item>
</style>

ในที่สุดคนที่ให้บริการโซลูชั่นที่ง่ายสำหรับพื้นหลัง FAB และพื้นหน้า (ไอคอน) สี
ManuelTS


3

ฉันทำมันเหมือน android: background = "@ color / colorAccent" ฉันแค่ไปที่ res โฟลเดอร์แล้วคลิกที่ค่าของโฟลเดอร์และจากนั้นใน colors.xml ใน colors.xml ฉันเพิ่งเปลี่ยนสีของ colorAccent และเรียกมันใน android: พื้นหลัง และมันทำ


2

จุดที่เราขาดหายไปคือก่อนที่คุณจะตั้งค่าสีบนปุ่มสิ่งสำคัญคือการทำงานกับค่าที่คุณต้องการสำหรับสีนี้ ดังนั้นคุณสามารถไปที่ค่า> สี คุณจะพบค่าเริ่มต้น แต่คุณสามารถสร้างสีได้โดยการกดและวางเปลี่ยนสีและชื่อ จากนั้น ... เมื่อคุณไปเปลี่ยนสีของปุ่มลอยน้ำ (ใน activity_main) คุณสามารถเลือกสีที่คุณสร้างขึ้น

ตัวอย่าง - โค้ดเกี่ยวกับค่า> สีที่มีสีเริ่มต้น + อีก 3 สีที่ฉันสร้างขึ้น:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>

    <color name="corBotaoFoto">#f52411</color>
    <color name="corPar">#8e8f93</color>
    <color name="corImpar">#494848</color>

</resources>

ตอนนี้ปุ่มแอ็คชั่นลอยน้ำของฉันพร้อมสีที่ฉันสร้างขึ้นและตั้งชื่อว่า "corPar":

<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:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_input_add"
        android:tint="#ffffff"
        app:backgroundTint="@color/corPar"/>

มันใช้งานได้สำหรับฉัน โชคดี!


1

หากคุณมีปุ่มการดำเนินการลอยตัวที่ไม่มี drawable คุณสามารถเปลี่ยนโทนสีโปรแกรมโดยใช้:

fab.getBackground().mutate().setTint(ContextCompat.getColor(yourContext, R.color.anyColor));

นั่นเป็นทางออกที่ฉันค้นหา ฉันมี fab ที่เรียบง่ายพร้อม backgrountTint และไม่สามารถหาวิธีที่จะเปลี่ยนโปรแกรมได้จนกว่าฉันจะพบสิ่งนี้
Redar

0

เพิ่มสีในไฟล์ color.xml

เพิ่มสีในไฟล์ color.xml จากนั้นเพิ่มรหัสบรรทัดนี้ ... floatingActionButton.setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(R.color.fab2_color)));


0

คุณสามารถใช้รหัสนี้ในกรณีที่คุณต้องการเปลี่ยนสีโดยทางโปรแกรม

floating.setBackgroundTintList(getResources().getColorStateList(R.color.vermelho));

0

ใช้

แอป: backgroundTint = "@ color / orange" ใน


<com.google.android.material.floatingactionbutton.FloatingActionButton
        android:id="@+id/id_share_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/share"
        app:backgroundTint="@color/orange"
        app:fabSize="mini"
        app:layout_anchorGravity="end|bottom|center" />



</androidx.coordinatorlayout.widget.CoordinatorLayout>

0

สำหรับการออกแบบวัสดุฉันเพิ่งเปลี่ยนสีของปุ่มการกระทำแบบลอยตัวเพิ่มสองบรรทัดด้านล่างในปุ่มการกระทำแบบลอยของคุณ xml และทำ

 android:backgroundTint="@color/colorPrimaryDark"
 app:borderWidth="0dp"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.