当前位置: 首页 > 知识库问答 >
问题:

[Android L]Android材质圆形按钮

陈誉
2023-03-14

那么,有人将如何实现android L中显示的圆形按钮呢?还有什么是循环按钮的技术名称,XML代码将被赞赏。

共有1个答案

夏侯渊
2023-03-14

这个按钮叫做FAB(浮动动作按钮),制作起来很简单。

activity.java

public class MainActivity extends Activity {

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

        //Outline
        int size = getResources().getDimensionPixelSize(R.dimen.fab_size);
        Outline outline = new Outline();
        outline.setOval(0, 0, size, size);
        findViewById(R.id.fab).setOutline(outline);
    }

}

anim.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="true"
        android:state_pressed="true">
        <objectAnimator
            android:duration="@android:integer/config_shortAnimTime"
            android:propertyName="translationZ"
            android:valueFrom="@dimen/button_elevation"
            android:valueTo="@dimen/button_press_elevation"
            android:valueType="floatType" />
    </item>
    <item>
        <objectAnimator
            android:duration="@android:integer/config_shortAnimTime"
            android:propertyName="translationZ"
            android:valueFrom="@dimen/button_press_elevation"
            android:valueTo="@dimen/button_elevation"
            android:valueType="floatType" />
    </item>
</selector>
<resources>
    <dimen name="fab_size">56dp</dimen>

    <dimen name="button_elevation">2dp</dimen>
    <dimen name="button_press_elevation">4dp</dimen>
</resources>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ImageButton
        android:id="@+id/fab"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true"
        android:layout_width="@dimen/fab_size"
        android:layout_height="@dimen/fab_size"
        android:layout_gravity="bottom|right"
        android:layout_marginRight="16dp"
        android:layout_marginBottom="16dp"
        android:background="@drawable/ripple"
        android:stateListAnimator="@anim/anim"
        android:src="@drawable/ic_action_add"
        android:elevation="4dp"
        />


</RelativeLayout>
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:colorControlHighlight">
    <item>
        <shape android:shape="oval">
            <solid android:color="?android:colorAccent" />
        </shape>
    </item>
</ripple>
 类似资料:
  • 如何实现谷歌材料设计指南中描述的“凸起按钮”和“扁平按钮”? 凸起的按钮为大多数平面布局增加了维度。他们强调 在工具栏和对话框中使用平面按钮,以避免过度分层。 资料来源:http://www.google.com/design/spec/components/buttons.html

  • 我对材料设计的纽扣样式感到困惑。我想要得到彩色凸起的按钮,像在附加的链接。,像“强制停止”和“卸载”按钮下看到的用法部分。是否有可用的样式或我需要定义它们? http://www.google.com/design/spec/components/buttons.html#按钮-用法 我找不到默认按钮样式。 示例: 如果我尝试通过添加 所有的样式都消失了,如触摸动画,阴影,圆角等。

  • 我是Android材料设计概念的新手。我创建了一个新项目并添加了带有AppCompat支持的前Lollipop版本的材料主题,但我的问题是,在Lollipop中它显示了ActionBar又名工具栏,但如果我在Lollipop前运行相同的,它不会显示ActionBar。 我是否只需要在我的布局中的任何地方使用工具栏控件,而不管API版本如何? 编辑:

  • 在现实世界里,每个物体会对光产生不同的反应。比如说,钢看起来通常会比陶瓷花瓶更闪闪发光,木头箱子也不会像钢制箱子那样对光产生很强的反射。每个物体对镜面高光也有不同的反应。有些物体反射光的时候不会有太多的散射(Scatter),因而产生一个较小的高光点,而有些物体则会散射很多,产生一个有着更大半径的高光点。如果我们想要在OpenGL中模拟多种类型的物体,我们必须为每个物体分别定义一个材质(Mater

  • 我一直在寻找一种方法来获得一个“凸起”圆角矩形按钮,而不是完全自己使用背景和自定义视图。我想要这样的纽扣: 我以为这样就可以了: 但这没什么用。按钮看起来一样。WTF? 是的,我用的是最新的SDK等等。 编辑:所以我添加了一个translationz。现在,一个阴影在活动打开时出现,但在动画完成时消失。???