Я использовал эту библиотеку https://github.com/futuresimple/android-floating-action-button. Как изменить изображение главной кнопки? Я хочу изменить изображение кнопки сразу после выбора одной из меньших кнопок.
Изменить картинку Floating Action Button Android
Ответ 1
Из https://developer.android.com/reference/android/support/design/widget/FloatingActionButton.html
Поскольку этот класс спускается с ImageView, вы можете управлять значком, который отображается через setImageDrawable (Drawable).
Или вы можете использовать setImageResource():
fab.setImageResource(R.drawable.ic_shopping_cart_white);
Ответ 2
вы можете использовать это в своем .XML:
android:src="@drawable/icon" // change backgroung icon
app:backgroundTint="@color/icons" // change background color
используйте это в коде:
mFloatingActionButton.setImageResource(R.drawable/icon2);
Ответ 3
Что я использую следующим образом,
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab_btn);
// State 1 -on
fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_on));
// State 2 - off
fab.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.fab_off));
Надеюсь, это поможет вам
Ответ 4
К сожалению, с этой библиотекой вы не можете изменить значок из меню (см. вопросы из этой библиотеки из дополнительной информации)
Вот почему я бросил эту библиотеку, чтобы использовать более гибкий способ! Это изначально вилка, но теперь она более продвинута;)
Вот ссылка
Наслаждайтесь!
Ответ 5
У меня была такая же проблема, и мне удалось создать собственное решение. Возможно, некоторые из них также могут быть полезны. Я поставил полный ответ на другой вопрос (Как установить значок для getbase FloatingActionsMenu), но эта часть, размещенная здесь, имеет отношение к вопросу при динамическом изменении изображения кнопки главного меню /image, когда выбрана одна из дополнительных кнопок. В этом случае вам нужно совместить ответ из "связанного вопроса" и ответа ниже.
Чтобы изменить значок на кнопке меню, когда вы выбираете floatActionButton, он может быть реализован следующим образом:
Создать кнопку меню в xml файле, создать плавающие кнопки на .java файле (программно), установить кнопку меню (цветная кнопка, цветная кнопка и изображение). Затем просто добавьте все кнопки в кнопку меню. Вы также можете отключить анимацию кнопки меню, просто комментируя код в классе FloatingActionsMenu
.
Затем каждый раз, когда вы создаете кнопку, образец:
final FloatingActionButton actionA = new FloatingActionButton(getBaseContext());
actionA.setTitle("Familie");
actionA.setIcon(R.drawable.world_map);
actionA.setSize(FloatingActionButton.SIZE_MINI);
actionA.setColorNormalResId(R.color.red);
actionA.setColorPressedResId(R.color.black_semi_transparent);
actionA.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent);
Toast.makeText(MainMapView.this, "Action Description", Toast.LENGTH_SHORT).show();
((FloatingActionsMenu) findViewById(R.id.multiple_actions)).collapse();
return;
}
});
См. ответ, опубликованный в ссылке о том, как настроить классы и определить кнопку меню и плавающие кнопки.
Значит, здесь важная часть:
menuMultipleActions.setMenuButton(R.drawable.icon, R.color.red_transparent, R.color.black_semi_transparent);
Этот метод необходимо добавить в класс FloatingActionsMenu
. Просто вы вызываете метод после того, как на каждом floatActionButton вы хотите обновить изображение.
Дополнительную информацию вы можете найти по ссылке, которую я опубликовал. Поэтому, когда вы нажимаете один из плавающих элементов (а).
На данный момент цвет кнопки меню не обновляется правильно, но я работаю над этим, если я найду решение, я также обновлю ответ. Надеюсь, это поможет, счастливая кодировка.
Ответ 6
Я столкнулся с такой же проблемой в последнее время, я попробовал следующую опцию
fab:fab_icon="@drawable/icon"
и
android:src="@drawable/icon" // change backgroung icon
даже попробовал программно
fab_menu_btn.setImageResource();
Ничего не получилось.
В файле приложения build.gradle замените
compile 'com.getbase:floatingactionbutton:1.10.0'
к
compile 'com.github.toanvc:floatingactionmenu:0.8.9'
В .xml файле Использование:
<toan.android.floatingactionmenu.FloatingActionsMenu
</toan.android.floatingactionmenu.FloatingActionsMenu>
В действии Файл:
floatingActionsMenu.setIcon(getResources().getDrawable(R.mipmap.icon));
Спасибо
Ответ 7
Добавьте свойство
fab:fab_icon="@drawable/fab_expand"
в xml, где вы инициализировали меню с плавающим действием.