2015-05-26 3 views
25

Я использовал эту библиотеку https://github.com/futuresimple/android-floating-action-button. Как изменить изображение главной кнопки? Я хочу изменить изображение кнопки сразу после выбора одной из меньших кнопок.Изменить картинку Floating Action Button Android

+0

У меня такая же проблема, и все это хватало моих волос. Спасибо за это http://stackoverflow.com/a/35697105/5228412 он отлично работает для меня и желает других, кто доберется сюда. –

ответ

-1

Добавить свойство

fab:fab_icon="@drawable/fab_expand" 

в XML, где инициализируется меню плавающего действия.

+0

Эй это свойство не существует! fab: fab_icon – Jorgesys

+0

этот ответ был для пользовательской библиотеки futuresimple, а не для стандартного FAB –

0

К сожалению, с этой библиотекой вы не можете изменить иконку из меню (см вопросы из этой библиотеки из более подробной информации)

Вот почему я бросил эту библиотеку, чтобы использовать способ более гибкий один! Это первоначально вилка, но теперь более продвинутый;)

Вот link

Наслаждайтесь!

0

У меня была такая же проблема, и мне удалось создать собственное решение. Возможно, некоторые из них также могут быть полезны. Я отправил полный ответ на другой вопрос (How to set icon to getbase FloatingActionsMenu), но эта часть, представленная здесь, имеет отношение к вопросу при динамическом изменении изображения/изображения кнопки основного меню, когда выбрана одна из поднаборок. В этом случае вам нужно совместить ответ из «связанного вопроса» и ответа ниже.

Для того, чтобы изменить значок на кнопке меню при выборе floatingActionButton она может быть реализована следующим образом:

Создать кнопку меню в 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 вы хотите обновить изображение.

Дополнительную информацию вы можете найти по ссылке, которую я опубликовал. Поэтому, когда вы нажимаете один из плавающих элементов().

На данный момент цвет кнопки меню не корректируется правильно, но я над этим работаю, если найду решение, я также обновлю ответ. Надеюсь, это поможет, счастливая кодировка.

+0

Есть ли причина для -1 или просто для удовольствия? Кто-то пробовал это решение, и это не сработало для него? – Thanos

+0

Я проголосовал за -1, потому что это не сработало для меня. На самом деле, через некоторое время после того, как я проголосовал, я попытался его обнародовать, потому что это не круто, но мне не разрешили ... Итак, извините: / –

13

вы можете использовать это в вашем .XML:

android:src="@drawable/icon" // change backgroung icon 
app:backgroundTint="@color/icons" // change background color 

использование этого в коде:

mFloatingActionButton.setImageResource(R.drawable/icon2); 
2

Что я использую следующим образом,

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)); 

Надежда это поможет вы

0

Я столкнулся с такими же проблема в последнее время, я попытался с следующим вариантом

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)); 

Thanks

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