如何仅制作一张"图像"浮动动作按钮

时间:2016-01-10 10:29:21

标签: android android-layout

我的图像如下。

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" />

4 个答案:

答案 0 :(得分:7)

您是否考虑过只使用ImageView

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

ActivityMain.java

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

或者更具体地说是ImageButton

<ImageButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    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 :(得分:6)

我不确定这个解决方案是否可以接受,但它确实有效;

您可以在FAB中覆盖嵌套图像的图像大小尺寸。 只需添加到您的尺寸文件:

<dimen tools:override="true" name="design_fab_image_size">56dp</dimen>(我使用56dp导致工厂规模为56dp)

tools:override =“true” - 这就是为什么我认为这个解决方案不好,因为“design_fab_image_size” - 是最终的,你应该坚持覆盖:)

答案 2 :(得分:1)

创建自己的类extends FloatingActionButton并在构造函数

中添加这些行
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);

答案 3 :(得分:0)

您可以在Illustrator / Photoshop中将图标的尺寸简单地设置为56px。然后确保添加android:backgroundTint="@android:color/transparent"这个以使工厂颜色透明。