通常の56 dpよりも大きなフローティングアクションボタン(FAB)を作成し、内部に大きなアイコンを作成します。 (私の目的のために、アイコンは一目瞭然ではないので、短いテキストを含むPNGファイルを作成し、このPNGをアイコンとして使用します。)
FABのサイズを増やすとうまくいきます:
mini-FloatingActionButtonを使用しないため、mini-button-sizeを再定義しました。
in layout-xml私は以下を指定します:
<Android.support.design.widget.FloatingActionButton
...
app:fabSize="mini"
....
そしてdimensions.xmlでミニファブのサイズを再定義します:
<dimen name="fab_size_mini">80dp</dimen>
ただし、FABで大きなアイコンを取得することができませんでした。マテリアルアイコンライブラリの異なるdpのアイコンを試しました-成功しませんでした。また、FABレイアウトにパディングを設定しても機能しませんでした。
助言がありますか?ありがとう!
dimensions.xml
でfabイメージサイズの最大サイズを再定義してみることができます。
<resources xmlns:tools="http://schemas.Android.com/tools">
<dimen name="design_fab_size_mini" tools:override="true">80dp</dimen>
<dimen name="design_fab_content_size" tools:override="true">48dp</dimen>
</resources>
デザインライブラリの元のリソースをオーバーライドすることを確認する必要があります。うまくいかない場合は、design_fab_image_size
の代わりにdesign_fab_content_size
を試してください。
これは実際の解決策ではなくハッキングであるため、注意して使用してください。将来のDesign Libraryリリースでリソースの名前が変更された場合、ソリューションが機能しない可能性があります。私の意見では、デザインライブラリで定義されているサイズに固執することです。これは、アプリ全体の見栄えをよくするマテリアルデザインに基づく推奨デザインガイドラインであるためです。
私はこれに出くわし、試行錯誤を通して答えを見つけました。 layout:width
とlayout:height
の両方をmatch_parent
に設定し、FrameLayoutでフローティングアクションボタンをラップすると、フローティングアクションボタンのサイズを大きくできるようです(そうする必要はありません) 、しかし、あなたはボタンのサイズを設定したいだけなので、理にかなっています)。
次に、FrameLayoutの幅と高さを任意に設定します。
Grace Coderの答えを支持しました。これは確かに問題に対処しているからです。
<FrameLayout
Android:layout_width="100dp"
Android:layout_height="100dp"
Android:layout_below="@+id/chronometer"
Android:layout_centerHorizontal="true">
<Android.support.design.widget.FloatingActionButton
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_below="@+id/chronometer"
Android:layout_centerHorizontal="true"
Android:layout_gravity="bottom"
Android:clickable="true"
Android:src="@Android:drawable/ic_btn_speak_now"
Android:id="@+id/record_fab" />
</FrameLayout>
私が撮ったこのスクリーンショットで違いを見ることができます:
上部のFABは私のコード/回避策を使用し、下部のFABは標準(ほとんど変更不可)の寸法を使用します。
Design Support Library 27.1.0以降、カスタムFABサイズを設定する公式の方法があります: _app:fabCustomSize
_ XML属性 および対応する setCustomSize
method 。アイコンのサイズを大きくするには、_Android:scaleType="center"
_以上のドロアブルを使用できます。 UPDATE:_Android:scaleType
_は broken になりました。代わりにfab.setScaleType(ImageView.ScaleType.CENTER)
を使用してください。
他の提案されたソリューションにはいくつかの欠点があります。
layout_width
_および_layout_height
_を希望のサイズに設定するだけで、同じ効果が得られます)は、Lollipop以前のデバイスではひどく見えます。 UPDATE:ポストロリポップでも使用可能になりました(下のスクリーンショットを参照)。scaleX
およびscaleY
の設定 マージンの調整が必要で(視覚的なFABサイズがレイアウトサイズと一致しないため)、スケーラブルでない部分をスケーリングします:ボタンの境界線と(事前にロリポップ)シャドー幅。サンプルレイアウト API 19(左)およびAPI 21(右)でレンダリングされた場合:
<dimen name="design_fab_size_mini" tools:override="true">120dp</dimen>
<dimen name="design_fab_size_normal" tools:override="true">150dp</dimen>
Android Pプレビューでは、FABが親のサイズに一致するようになりました。アイコンのサイズが縮小され、アイコンが小さくなりすぎて中心から外れてしまったため、機能しなくなりました。
私が見つけた最も簡単な方法は、FABをFrameLayoutに配置し、影が切れないようにFABに公正なマージンを設定し(10dpを使用)、両方のサイズをwrap_content
に設定してから、 scaleX
とscaleY
をFrameLayoutに追加します。
<FrameLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:scaleX="1.6"
Android:scaleY="1.6">
<Android.support.design.widget.FloatingActionButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_margin="10dp"
Android:clickable="true"
Android:focusable="true"
Android:src="@drawable/ic_send_white_24dp" />
</FrameLayout>
これは期待どおりに機能し、特定の量で簡単にスケーリングでき、他のフローティングアクションボタンには影響しません。
追加するだけで、ファブサイズを簡単にカスタマイズできます
app:fabCustomSize="32dp"
お気に入り
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab_main_unlock"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|center_horizontal"
Android:layout_margin="@dimen/margin_normal"
Android:src="@drawable/ic_unlock"
Android:visibility="gone"
app:backgroundTint="@color/colorPrimary"
app:fabCustomSize="@dimen/margin_very_massive"
tools:visibility="visible" />