Ich möchte die Rahmenfarbe der Fab Button ändern. Die Randfarbe ist weiß, die Innenfarbe ist schwarz oder transparent
Ich möchte, dass mein Button so aussieht:
fab.xml in drawable
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:innerRadius="0dp"
Android:shape="ring"
Android:thicknessRatio="2"
Android:useLevel="false" >
<solid Android:color="@Android:color/transparent" />
<stroke
Android:width="3dp"
Android:color="@Android:color/white" />
</shape>
Floating Action Button in layout
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/buttton_float"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/ic_action_social_notifications"
Android:background="@drawable/fab"
Android:layout_margin="@dimen/fab_margin"
Android:layout_gravity="bottom|right"
app:fabSize="normal"
app:backgroundTint="@Android:color/white"
app:rippleColor="@Android:color/black"
app:borderWidth="0dp"
app:elevation="2dp"
app:pressedTranslationZ="12dp"/>
Hinweis: Das benutzerdefinierte Design für Ihr FAB verstößt gegen die Richtlinien von Google Material Design für den Floating Action Button
sie können einen Kreis ohne Zeichen zeichnen
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/bottom_navigation_fab"
style="@style/fab_material"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerInParent="true"
Android:layout_gravity="bottom|center"
app:borderWidth="3dp"
Android:backgroundTint="@color/mountain_meadow" // inner circle color
Android:layout_marginBottom="10dp"
Android:tint="@color/white"
app:backgroundTint="@color/white" // border color
app:srcCompat="@drawable/bottom_nav_star" />
Erstellen Sie zunächst eine .xml-Shape-Ressource, nennen Sie sie ring.xml und fügen Sie Folgendes hinzu:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item>
<shape
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:innerRadiusRatio="1"
Android:shape="ring"
Android:thicknessRatio="1"
Android:useLevel="false">
<solid Android:color="#FFF"/>
<stroke
Android:width="5dp"
Android:color="#000"/>
</shape>
</item>
<item>
<bitmap xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:src="@drawable/ic_cast_light"/>
</item>
</layer-list>
Sie müssen mit den Attributen "Dicke" und "InnerRadius" spielen, um es richtig zu machen, aber das sollte es tun! Auch die Bitmap-Quelle ist nur ein Füllstoff, Sie möchten Ihr F-Bild dort ablegen.
Dort, wo Sie Ihre Fabrik angeben, verweisen Sie auf Ihren Ring wie folgt:
Android:background="@drawable/ring"
Führen Sie in Ihrem Java-Code Folgendes aus:
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setBackgroundResource(R.drawable.ring);
Hoffe das hilft!
Wenn Sie den Rand der Float-Schaltfläche festlegen möchten, tun Sie dies einfach. Erstellen Sie zuerst eine XML-Datei
fab_background.xml
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:innerRadius="0dp"
Android:shape="ring"
Android:thicknessRatio="2"
Android:useLevel="false" >
<!--Here if you want to set transparent can set-->
<solid Android:color="@color/white" />
<!--Here you can set your fab button border color-->
<stroke
Android:width="3dp"
Android:color="@color/white" />
</shape>
Dann nach dem Gebrauch so in Ihrer XML-Layoutdatei.
main_activity.xml
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/rl_content_main"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@color/black">
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
Android:padding="5dp"
Android:background="@drawable/fab_background">
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab_map"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_vertical"
Android:elevation="0dp"
Android:src="@Android:drawable/ic_media_play"
app:fabSize="normal"
app:elevation="0dp"/>
</LinearLayout>
</RelativeLayout>
Sie können die folgende Lösung verwenden:
app:backgroundTint="@Android:color/white
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab_add_doc"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_alignParentRight="true"
Android:onClick="navigateToCreateActivity"
Android:backgroundTint="@color/colorPrimary"
app:backgroundTint="@Android:color/white"
Android:layout_marginBottom="@dimen/fab_margin"
Android:layout_marginEnd="50dp"
app:srcCompat="@drawable/ic_plus"/>
Es funktioniert gut für die Grenze. sieht aus wie unten