0

我正在尝试为浮动操作按钮实现代码,但由于某种原因,椭圆形没有替换当前按钮。

activity_upcoming.xml:

<ImageButton
    android:id="@+id/add_button"
    android:layout_width="@dimen/diameter"
    android:layout_height="@dimen/diameter"
    android:layout_gravity="end|bottom"
    android:layout_alignBottom="@+id/Upcoming"
    android:layout_alignEnd="@+id/Upcoming"
    android:layout_marginEnd="@dimen/add_button_margin"
    android:layout_marginBottom="@dimen/add_button_margin"
    android:src="@android:drawable/ic_input_add"
    android:tint="@android:color/white"
    android:shape="@drawable/oval_ripple"
    android:elevation="@dimen/elevation_low"
    android:stateListAnimator="@anim/button_elevation"
    />

椭圆波纹.xml:

<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight">
  <item>
      <shape android:shape="oval">
          <solid android:color="#095578" />
      </shape>
  </item>
</ripple>

即将到来的.java:

public class Upcoming extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_upcoming);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
        View v;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT_WATCH) {
            v = inflater.inflate(R.layout.fragment_crime_list, parent, false);
        } else {
            v = super.onCreateView(inflater, parent, savedInstanceState);
        }
        int diameter = getResources().getDimensionPixelSize(R.dimen.diameter);
        Outline outline = new Outline();
        outline.setOval(0, 0, diameter, diameter);
        View addButton = v.findViewById(R.id.add_button);
        return v;
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_upcoming, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();


        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

按钮继续保持矩形形状,颜色不变。我已经用几个网站验证了涟漪代码,但无济于事。

4

3 回答 3

0

我建议在 Github 中查看这个 git:https ://github.com/makovkastar/FloatingActionButton

您可以使用此库毫无问题地创建浮动操作按钮,并且它具有非常好的文档。希望能帮助到你...

于 2015-02-25T08:41:42.483 回答
0

有许多简单的库可用于此目的,而不是创建自己的按钮。每个都有自己可以使用的功能集。使用这些的好处是它可以让您轻松复制涟漪效果并添加其他动画。看看这个链接:

https://android-arsenal.com/tag/173

干杯!

于 2015-02-25T08:49:32.370 回答
0

尝试改变

<ImageButton
...
android:shape="@drawable/oval_ripple"
/>

<ImageButton
...
android:background="@drawable/oval_ripple"
/>

波纹代码也需要 minSDKVersion = 21,因此请确保您已正确完成。

于 2015-02-26T16:28:17.980 回答