如何在android上创建圆形视图?

时间:2016-07-19 08:49:45

标签: android listview android-wear-2.0

如何在android wear 2.0中为圆形手表创建圆形列表?

像这样:

enter image description here

循环列表见于android wear app启动器。

2 个答案:

答案 0 :(得分:3)

首先,您需要使用 WearableRecyclerView 替换ListView。 它可以像普通的ListView一样使用。但请确保您从android.support.wear.widget 导入正确的请勿使用 android.support.wearable.view中的。这个应该被划掉,所以你不会花很长时间来检查你是否正在使用正确的。如果只有一个WearableRecyclerView可供选择,请确保将compile 'com.android.support:wear:27.0.0'添加到 build.gradle (穿戴)文件中的依赖项。 另外,请确保您在 activity.xml 中使用<android.support.wear.widget.WearableRecyclerView/>。如果您只想要一个没有任何自定义项目缩放的循环ListView,只需在onLayoutInflated()方法中调用它:

your_recyclerview.setEdgeItemsCenteringEnabled(true);
your_recyclerview.setLayoutManager(new WearableLinearLayoutManager(your_activity_context));

如果你想让物品靠近屏幕中心时放大,事情就会变得复杂一点。

首先:将它粘贴到Activity.java中:

private class CustomScrollingLayoutCallback extends WearableLinearLayoutManager.LayoutCallback {

        private static final float MAX_ICON_PROGRESS = 2F;

        @Override
        public void onLayoutFinished(View child, RecyclerView parent) {

            float centerOffset = ((float) child.getHeight() / 2.0f) / (float) parent.getHeight();
            float yRelativeToCenterOffset = (child.getY() / parent.getHeight()) + centerOffset;

            float progresstoCenter = (float) Math.sin(yRelativeToCenterOffset * Math.PI);

            float mProgressToCenter = Math.abs(0.5f - yRelativeToCenterOffset);

            mProgressToCenter = Math.min(mProgressToCenter, MAX_ICON_PROGRESS);

            child.setScaleX(1 - mProgressToCenter);
            child.setScaleY(1 - mProgressToCenter);
            child.setX(+(1 - progresstoCenter) * 100);
        }

    }

然后返回 onLayoutInflated()方法,并输入以下内容:

    CustomScrollingLayoutCallback customScrollingLayoutCallback = new CustomScrollingLayoutCallback();
    your_recycler_view.setLayoutManager(new WearableLinearLayoutManager(your_context, customScrollingLayoutCallback));
    your_recycler_view.setCircularScrollingGestureEnabled(true);

进行。

答案 1 :(得分:1)

Android Wear 2.0&#39; WearableRecyclerView现在可以实现这一点。

根据Android Developer Docs

  

Wear 2.0引入了WearableRecyclerView类来显示和   操纵为圆形显示优化的项目的垂直列表。   WearableRecyclerView将现有的RecyclerView类扩展为   在可穿戴设备中提供弯曲布局和圆形滚动手势   应用

您可能希望详细了解Android Wear 2.0 Preview 3