2015-10-08 27 views

Odpowiedz

5

fab.xml w 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> 

Pływający przycisk akcji w 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"/> 

Uwaga: Zwyczaj projekt dla FAB jest niezgodne z wytycznymi Google Material Design dla Floating Action Button

+0

Po pierwsze dziękuję za odpowiedź! Ale chcę osiągnąć dokładnie to samo renderowanie z czarną kulą zamiast przezroczystą. Właśnie zmieniłem "przezroczysty" na "czarny" i wypełniłem moje FAB-em białym. Czy ktoś wie, dlaczego działa z przezroczystym kolorem, ale nie z czarnym kolorem? – MHogge

+1

spróbuj 'app: backgroundTint =" @ android: kolor/czarny "' w 'android.support.design.widget.FloatingActionButton' –

+0

Próbowałem ustawić backgroundTint na czarny z jednolitym kolorem na przezroczysty Mam czarne granice z przezroczyste tło i kiedy zostawiam BackgroundTint na czarno i ustawię stały kolor na czarny, mój cały przycisk stanie się czarny.Następnie, jeśli ustawię backgroundTint na biały, a jednolity kolor na czarny, cały mój przycisk zmieni kolor na biały. to jest niezrozumiałe. :/ – MHogge

2

najpierw utworzyć zasób kształt .xml nazwijmy to ring.xml i umieścić w nim następujące:

<?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> 

będziesz musiał grać z grubością i innerRadius atrybuty, aby uzyskać to prawo, ale powinien to zrobić! Również źródło bitmapy jest tylko wypełniaczem, chcesz umieścić tam swój obraz F.

Następnie, w którym deklarują swoje fab, odwołać swój pierścień takich jak:

android:background="@drawable/ring" 

LUB

W kodzie java, wykonaj następujące czynności:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
fab.setBackgroundResource(R.drawable.ring); 

nadzieję, że to pomaga!

+1

Jak mi wiadomo, przycisk fab ** android: tło ** nie działa, ** android: backgroundTint ** to super tło tylko zmiana koloru. dobrze? –

+3

I ten kod nie działa T-T. Dziękuję za zainteresowanie. –

1

Jeśli chcesz ustawić obramowanie przycisku Float, po prostu rób to. Najpierw utworzyć jeden plik xml

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> 

Następnie po użyciu takiego w pliku XML szablonu.

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> 
+0

Twój kod działa poprawnie, ale czas jego podglądu nie pojawi się w środku, ma miejsce na prawym dole. –

+0

proszę, pokaż mi swój kod. – Shailesh

+0

Naprawiłem to samemu, dziękuję za tę odpowiedź. –