浮动操作按钮椭圆形不变
Floating Action Button Oval not changing
我正在尝试为浮动操作按钮实现代码,但出于某种原因,椭圆形没有替换当前按钮。
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);
}
}
按钮继续保持矩形形状,颜色没有改变。我已经在几个网站上验证了瑞波码都没有用。
我建议在 Github 中查看此 git:https://github.com/makovkastar/FloatingActionButton
您可以使用此库毫无问题地创建浮动操作按钮,并且它有很好的文档。希望对你有帮助...
有许多简单的库可用于此目的,而无需创建您自己的按钮。每个都有自己的一组功能供您使用。
使用这些的优点是它可以让您轻松复制波纹效果并添加其他动画。
看看这个 link :
https://android-arsenal.com/tag/173
干杯!
尝试改变
<ImageButton
...
android:shape="@drawable/oval_ripple"
/>
到
<ImageButton
...
android:background="@drawable/oval_ripple"
/>
另外,ripple 代码需要 minSDKVersion = 21,因此请确保您已正确完成。
我正在尝试为浮动操作按钮实现代码,但出于某种原因,椭圆形没有替换当前按钮。
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);
}
}
按钮继续保持矩形形状,颜色没有改变。我已经在几个网站上验证了瑞波码都没有用。
我建议在 Github 中查看此 git:https://github.com/makovkastar/FloatingActionButton
您可以使用此库毫无问题地创建浮动操作按钮,并且它有很好的文档。希望对你有帮助...
有许多简单的库可用于此目的,而无需创建您自己的按钮。每个都有自己的一组功能供您使用。 使用这些的优点是它可以让您轻松复制波纹效果并添加其他动画。 看看这个 link :
https://android-arsenal.com/tag/173
干杯!
尝试改变
<ImageButton
...
android:shape="@drawable/oval_ripple"
/>
到
<ImageButton
...
android:background="@drawable/oval_ripple"
/>
另外,ripple 代码需要 minSDKVersion = 21,因此请确保您已正确完成。