95

Floating button Кнопка новой плавучее действия должна быть 56dp х 56dp и значок в нем должен быть 24dp х 24dp. Таким образом, расстояние между значком и кнопкой должно быть 16dp.Отрегулируйте размер пиктограммы Плавающих кнопки действий (FAB)

<ImageButton 
    android:id="@+id/fab_add" 
    android:layout_width="56dp" 
    android:layout_height="56dp" 
    android:layout_gravity="bottom|right" 
    android:layout_marginBottom="16dp" 
    android:layout_marginRight="16dp" 
    android:background="@drawable/ripple_oval" 
    android:elevation="8dp" 
    android:src="@drawable/ic_add_black_48dp" /> 

ripple_oval.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:colorControlHighlight"> 
    <item> 
     <shape android:shape="oval"> 
      <solid android:color="?android:colorAccent" /> 
     </shape> 
    </item> 
</ripple> 

И это результат я получаю:
Floating button result
Я использовал иконку из \ Материально-дизайн-иконки-1.0.0 \ содержимое \ drawable-hdpi \ ic_add_black_48dp.png
https://github.com/google/material-design-icons/releases/tag/1.0.1

Как сделать размер значка внутри кнопки точно как описано в руководствах?

http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button

ответ

130

Поскольку ваш контент 24dp x 24dp, вы должны использовать 24dp icon. А затем установите android:scaleType="center" в свой ImageButton, чтобы избежать автоматического изменения размера.

+0

Можете ли вы объяснить или отбросить ссылку на какой-либо сайт, почему, например, в папке ** drawable-hdpi ** есть _18dp.png, _24dp.png, _36dp.png, _48dp. png изображения. – vovahost

+0

Я не понимаю ваш вопрос, есть 18dp, 24dp, 36dp и 48dp для изображений разных размеров. –

+0

Вы помните старые Android_Design_Icons, у которых был только один вариант значка в папке hdpi, который был 48px x 48px. Почему теперь в папке hdpi существует 4 разных разрешения для одного и того же значка, то есть 27px x 27 px, 36px x 36px, 54px x 54px, 72px x 72px? – vovahost

11
<ImageButton 
     android:background="@drawable/action_button_bg" 
     android:layout_width="56dp" 
     android:layout_height="56dp" 
     android:padding="16dp" 
     android:src="@drawable/ic_add_black_48dp" 
     android:scaleType="fitXY" 
     android:elevation="8dp"/> 

На фоне предоставленной вами это приводит к кнопке ниже на устройстве (Nexus 7 2012)

enter image description here

выглядит хорошо для меня.

+4

Я установил отступы, но он ничего не делает. И правое заполнение будет 16 dp not 32dp – vovahost

61

Сделать эту запись в

РАЗМЕРЫ
<!--Floating action button--> 
<dimen name="design_fab_image_size" tools:override="true">36dp</dimen> 

Здесь 36dp является размер значка на кнопку с плавающей точкой. Это установит размер 36dp для всех значков для кнопки плавающего действия.

Обновления Как Per Комментарии

Если вы хотите установить размер значков для конкретной плавающей кнопки действий, то вы должны пойти с плавающей кнопки действий атрибуты, как приложение: fabSize = «нормальный» и андроид: scaleType =» центр".

<!--app:fabSize decides size of floating action button You can use normal, auto or mini as per need--> 
    app:fabSize="normal" 

    <!--android:scaleType decides how the icon drawable will be scaled on Floating action button. You can use center(to show scr image as original), fitXY, centerCrop, fitCenter, fitEnd, fitStart, centerInside.--> 
    android:scaleType="center" 
+3

Это то, что мне нужно - просто и просто. Спасибо за публикацию. – Blisterpeanuts

+0

Это не работает с https://github.com/Clans/FloatingActionButton :( – marienke

+1

Да. Он не работает с https://github.com/Clans/FloatingActionButton. Он работает, когда вы используете андроиды FloatingActionButton – Abhishek

18

В руководстве дизайна определяет два размера, и, если нет сильной причины отклоняться от использования либо, размер можно регулировать с помощью атрибута fabSize XML в FloatingActionButton компонента.

Рассмотрим задания с использованием либо app:fabSize="normal" или app:fabSize="mini", например .:

<android.support.design.widget.FloatingActionButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_done_white_24px" 
    app:fabSize="mini" /> 
3

Как FAB походит ImageView так Вы можете использовать scaleType атрибут, чтобы изменить размер значков также ImageView. По умолчанию scaleType для FAB - fitCenter.Вы можете использовать center и centerInside, чтобы сделать значок маленьким и большим соответственно.

Все значения для атрибута scaleType - center, centerCrop, centerInside, fitCenter, fitEnd, fitStart, fitXY и matrix.

Для получения более подробной информации см. https://developer.android.com/reference/android/widget/ImageView.ScaleType.html.

1

прочь @ ответ IRadha в в настройке android:height="_dp" и настройка типа шкалы для android:scaleType="center" вектора Drawable устанавливает рисуем на любой размер был установлен

Смежные вопросы