通常、アイコンはフローティングアクションボタンに設定されていますが、円形の画像を作成できるように画像を設定する必要があります。
プロジェクトに追加しましたが(Android Studio-> New-> Image Assetを使用)、画像がボタン全体に表示されませんでした:
私のxml:
<com.github.clans.fab.FloatingActionMenu
Android:id="@+id/run_menu"
Android:layout_alignParentBottom="true"
Android:layout_alignParentRight="true"
Android:paddingBottom="@dimen/activity_horizontal_margin"
Android:paddingRight="@dimen/activity_horizontal_margin"
Android:visibility="visible"
fab:fab_colorNormal="#DA4336"
fab:fab_colorPressed="#E75043"
fab:fab_colorRipple="#99FFFFFF"
fab:fab_shadowColor="#66000000"
fab:fab_showShadow="true"
fab:layout_constraintBottom_toBottomOf="parent"
fab:layout_constraintHorizontal_bias="0.0"
fab:layout_constraintLeft_toLeftOf="parent"
fab:layout_constraintRight_toRightOf="parent"
fab:layout_constraintTop_toTopOf="parent"
fab:layout_constraintVertical_bias="0.0"
fab:menu_backgroundColor="#ccffffff"
fab:menu_fab_label="Choose an action"
fab:menu_labels_colorNormal="#333333"
fab:menu_labels_colorPressed="#444444"
fab:menu_labels_colorRipple="#66FFFFFF"
fab:menu_labels_ellipsize="end"
fab:menu_labels_maxLines="-1"
fab:menu_labels_position="left"
fab:menu_labels_showShadow="true"
fab:menu_labels_singleLine="true"
fab:menu_openDirection="up"
Android:layout_height="0dp"
Android:layout_width="0dp">
<com.github.clans.fab.FloatingActionButton
Android:id="@+id/shop"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@mipmap/store"
fab:fab_label="Store" />
</com.github.clans.fab.FloatingActionMenu>
それを修正する方法についてのアイデアはありますか?どのように適切に作成する必要がありますか?
解決策はapp:maxImageSize = "56dp"
プロパティをFABサイズに設定します。
<com.google.Android.material.floatingactionbutton.FloatingActionButton
Android:src="@drawable/perfect_fit_circle_image"
app:maxImageSize="56dp"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" />
FABに次のプロパティを設定します
Android:scaleType="center"
それが機能しない場合は、プロパティを使用してみてください
app:fabSize="mini"
以下のコードを使用してください
Android:scaleType="fitXY"
丸みを帯びたpng画像を設定する場合、これを回避するには、floatingActionButtonクラスを拡張してから、onMeasureメソッドをオーバーライドし、パディングを0に設定し、scaleTypeをcenterCropに設定します。
public class FloatingImageButton extends FloatingActionButton {
public FloatingImageButton(Context context) {
super(context);
}
public FloatingImageButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setPadding(0, 0, 0, 0);
setScaleType(ScaleType.CENTER_CROP);
}
}
xmlサンプル
<com.tabz.app.FloatingImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/camera_circle"
Android:layout_gravity="bottom|end"
Android:layout_margin="16dp"/>
出力
XMLでフロートボタンのスケールを設定します
Android:scaleX="2.0"
または、プログラムで実行できます。
someButton.setScaleX(2.0f);
someButton.setScaleY(2.0f);
マテリアルコンポーネントライブラリ では、 doc に従って、属性app:maxImageSize
を使用できます。
カスタムディメンションを使用できますが、これらの定義済みディメンションを参照することもできます。
<dimen name="design_fab_size_mini">40dp</dimen>
<dimen name="design_fab_size_normal">56dp</dimen>
使用するだけ:
<com.google.Android.material.floatingactionbutton.FloatingActionButton
Android:id="@+id/fab"
app:srcCompat="@drawable/ic_add_24px"
app:maxImageSize="@dimen/design_fab_size_normal"
../>
ここでは、標準ディメンション(<dimen name="design_fab_image_size">24dp</dimen>
)とdesign_fab_size_normal
の結果を示しています。