このライブラリを使用しました https://github.com/futuresimple/Android-floating-action-button 。メインボタンの画像を変更するにはどうすればよいですか?小さいボタンの1つを選択した直後にボタンの画像を変更したい。
から https://developer.Android.com/reference/Android/support/design/widget/FloatingActionButton.html
このクラスはImageViewから派生するため、setImageDrawable(Drawable)を介して表示されるアイコンを制御できます。
または、setImageResource()を使用できます。
fab.setImageResource(R.drawable.ic_shopping_cart_white);
これを.XMLで使用できます。
Android:src="@drawable/icon" // change backgroung icon
app:backgroundTint="@color/icons" // change background color
コードでこれを使用してください:
mFloatingActionButton.setImageResource(R.drawable/icon2);
私が次のように使用しているもの、
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));
これがあなたを助けることを願っています
私は最近同じ問題に直面しました、私は次のオプションで試しました
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));
ありがとう
私は同じ問題を抱えており、自分で解決策を作成することができました。たぶん他の人がそれも有用だと思った。私は別の質問への完全な回答を投稿しました( 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
クラスに追加する必要があります。画像を更新するすべてのfloatingActionButtonでメソッドを呼び出すだけです。
詳細は、私が投稿したリンクをご覧ください。したがって、floatingActionButtonの1つをクリックすると。
現時点では、メニューボタンの色は正しく更新されていませんが、解決策が見つかった場合は作業中です。ここでも回答を更新します。これがお役に立てば幸いです。
残念ながら、このライブラリではメニューからアイコンを変更できません(詳細については、このライブラリの問題を参照してください)
そのため、このライブラリを削除して、より柔軟な方法を使用しました!元々はフォークですが、現在はより高度です;)
楽しい!