我正在尝试为浮动操作按钮实现代码,但由于某种原因,椭圆形没有替换当前按钮。
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"
/>
oval_ripple.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>
Upcoming.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);
}
}
按钮继续保持矩形,颜色不会改变。我已经通过多个网站验证了涟漪代码无济于事。
答案 0 :(得分:0)
我建议在Github中查看这个git:https://github.com/makovkastar/FloatingActionButton
您可以使用此库创建浮动操作按钮,并且它具有非常好的文档。希望它有所帮助...
答案 1 :(得分:0)
您可以使用许多简单的库来实现此目的,而不是创建自己的按钮。每个都有自己的功能集,您可以使用。 使用它们的优点是它允许您轻松复制涟漪效果并添加其他动画。 看看这个链接:
https://android-arsenal.com/tag/173
干杯!
答案 2 :(得分:0)
尝试更改
<ImageButton
...
android:shape="@drawable/oval_ripple"
/>
到
<ImageButton
...
android:background="@drawable/oval_ripple"
/>
此外,纹波代码需要minSDKVersion = 21,因此请确保您已正确完成。