热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何在AndroidWear2.0中创建圆形手表的圆形列表?像这样:在AndroidWear应用启动器中可以看到循环列表.解决方法:首先,您需要用WearableRecyclerV

如何在Android Wear 2.0中创建圆形手表的圆形列表?

像这样:

enter image description here

在Android Wear应用启动器中可以看到循环列表.

解决方法:

首先,您需要用WearableRecyclerView替换ListView.
它可以像普通的ListView一样使用.但是请确保您从android.support.wear.widget中导入了正确的代码.不要使用android.support.wearable.view中的那个.这个应该被划掉,这样就不会花很长时间检查您是否使用了正确的那个.如果只有一个WearableRecyclerView可供选择,请确保将build.gradle(磨损)文件中的依赖项添加到编译文件“ com.android.support:wear:27.0.0”.
另外,请确保您使用的是在您的activity.xml中.如果只想使用圆形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);

完成.


推荐阅读
author-avatar
爬树小羊_298
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有