2016-01-10 9 views
7

以下のような画像があります。「イメージのみ」のフローティングアクションボタンの作成方法

enter image description here

私は、フローティングアクションボタンを作るためにそれを使用すると、ボタンは次のようになります。

enter image description here

私はピンクのマージンを望んでいません。私は自分のイメージを表示したいだけです。私は何をすべきか?

また、自分の画像のサイズを内側のものではなく外側の円にしたいと考えています。ここで

は私のコードです:

<android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@drawable/ic_refresh" /> 
+0

にこの行を追加します。 背景属性も変更しないでください。 背景の色合いを緑色に変更し、矢印のみでアイコンを設定してみませんか? それ以外の場合は、代わりにカスタム画像ボタンを使用する必要があります。 – Magnas

答えて

6

はあなただけImageViewを使用することを検討していますか?あなたのActivityMain.java

ImageView v = (ImageView) findViewById(R.id.fab); 
v.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
    // Your code here 
    } 
}); 

以上、具体的ImageButtonに比べ

<ImageView 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:clickable="true" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_refresh" /> 

ImageButton v = (ImageButton) findViewById(R.id.fab); 
v.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
    // Your code here 
    } 
}); 
+1

ありがとう、それは動作します。新しいタブ付きアクティビティを作成すると、Android Studioから浮動アクションボタンが表示されました。フローティングボタンを表示するには、タブ付きのアクティビティにFABを使用する必要があると思いました。しかし今、私はそうではないと確信しています。 –

5

イムわからないことが、この解決策として許容できるが、それは動作します;:

<ImageButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_refresh" /> 

より

FABのネストされたイメージのイメージサイズのディメンションをオーバーライドできます。これは私がこのソリューションは良くないと仮定し、なぜなものである - オーバーライド=「true」を:

<dimen tools:override="true" name="design_fab_image_size">56dp</dimen>(私はガイドラインでファブサイズは56dpある原因56dp使用)

ツール: はちょうどあなたのdimensファイルに追加します、 "design_fab_image_size"が原因です - 最終的です。オーバーライドを主張する必要があります。

+0

これは私のために働いた。ちょうど誰かがあなたの値 - > dimens.xmlにこれをどこに追加するのか疑問に思う場合に備えて。あなたの 'FloatingActionButton'に' android:scaleType = "fitCenter" 'を追加することを忘れないでください。 – Polar

0

Illustrator/Photoshopでアイコンのサイズを56ピクセルに設定するだけです。次に、android:backgroundTint="@android:color/transparent"を追加して、ファブの色を透明にします。

1

は、独自のクラスを拡張しFloatingActionButtonだけを作成し、サイズを固定しているアイコンの描画可能に設定しますsrc属性を変更するコンストラクタ

super(context, attrs); 
Method method = getClass().getSuperclass().getDeclaredMethod("getSizeDimension"); 
method.setAccessible(true); 
Object r = method.invoke(this); 
Field f = super.getClass().getSuperclass().getDeclaredField("mMaxImageSize"); 
f.setAccessible(true); 
f.set(this, r); 
関連する問題