web-dev-qa-db-ja.com

画像変更アクションボタンAndroid

このライブラリを使用しました https://github.com/futuresimple/Android-floating-action-button 。メインボタンの画像を変更するにはどうすればよいですか?小さいボタンの1つを選択した直後にボタンの画像を変更したい。

33
pippo10

から https://developer.Android.com/reference/Android/support/design/widget/FloatingActionButton.html

このクラスはImageViewから派生するため、setImageDrawable(Drawable)を介して表示されるアイコンを制御できます。

または、setImageResource()を使用できます。

fab.setImageResource(R.drawable.ic_shopping_cart_white);
41
Alex Bravo

これを.XMLで使用できます。

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

コードでこれを使用してください:

 mFloatingActionButton.setImageResource(R.drawable/icon2);
21
AndroidDev

私が次のように使用しているもの、

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

これがあなたを助けることを願っています

3
Umanda

私は最近同じ問題に直面しました、私は次のオプションで試しました

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

ありがとう

1
suprita

私は同じ問題を抱えており、自分で解決策を作成することができました。たぶん他の人がそれも有用だと思った。私は別の質問への完全な回答を投稿しました( 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つをクリックすると。

現時点では、メニューボタンの色は正しく更新されていませんが、解決策が見つかった場合は作業中です。ここでも回答を更新します。これがお役に立てば幸いです。

0
Thanos

残念ながら、このライブラリではメニューからアイコンを変更できません(詳細については、このライブラリの問題を参照してください)

そのため、このライブラリを削除して、より柔軟な方法を使用しました!元々はフォークですが、現在はより高度です;)

リンク

楽しい!

0
ptitvinou