android - 如何在 Lollipop 中使用 setOutlineProvider 而不是 setOutline

标签 android android-layout android-5.0-lollipop material-design android-appcompat

对于早期的 L 预览版,有一些如下所示的示例可以添加到您的代码中,以便使用 FAB( float 操作按钮)。

但不幸的是,由于不再支持 setOutline 方法,我无法使用相同的代码来实现 FAB,但它似乎已被替代方法“fab.setOutlineProvider(ViewOutlineProvider);”所取代。谁能解释一下如何使用它?...

这可能是我所缺少的非常简单的东西,但我们将不胜感激任何帮助。

// Outline
int size = getResources().getDimensionPixelSize(R.dimen.fab_size);
Outline outline = new Outline();
outline.setOval(0, 0, size, size);

Button fab = (Button) findViewById(R.id.fab);
fab.setOutline(outline);
fab.setClipToOutline(true);

最佳答案

只是为了完成@ianhanniballake 的回答:

Button fab = (Button) findViewById(R.id.fab);
//Outline outline = new Outline();
//outline.setOval(0, 0, size, size);
//fab.setOutline(outline);  
ViewOutlineProvider viewOutlineProvider = new ViewOutlineProvider() {
        @Override
        public void getOutline(View view, Outline outline) {
            // Or read size directly from the view's width/height
            int size = getResources().getDimensionPixelSize(R.dimen.fab_size);
            outline.setOval(0, 0, size, size);
        }
    };
fab.setOutlineProvider(viewOutlineProvider);

关于android - 如何在 Lollipop 中使用 setOutlineProvider 而不是 setOutline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26472955/

相关文章:

android - 如何在Android Studio中获取图案锁定组件的坐标(X,Y)

android - 我应该使用哪种布局(相当于 css 内联 block )

android - 操作栏中的主页按钮在 Lollipop 中不起作用

android - 旋转后找不到 fragment 的 id 0x View ?

android - android webview 版本取决于 sdk 还是设备?

android - 检测 Android Lollipop 上的分辨率是否过高

java - 带有 Android 位图类的 Google App Engine

android - 如何正确初始化 map ?

android - 一个 Android 应用程序可以同时为不同的设备提供不同的版本吗?

android - 我如何收听卸载 apk?