首页 文章 精选 留言 我的

精选列表

搜索[visual studio code],共10000篇文章
优秀的个人博客,低调大师

Android Studio - 第四十三期 RecyclerView存在大量Item时,当滚到底部时快速滑到顶部

在使用RecyclerView展示图片或者其他信息时,往往需要展示很多的Item,当滚到底部时又想回到顶部,如果一点一点的向上划去比较麻烦,而且用户体验不好。因此添加一个快速回到顶部的按钮是很有必要的,并且刚开始的时候这个按钮是隐藏的,当滑动超过超过一屏的时候才会出现,在滑动的过程中也是不会出现的。很多类似的项目都会使用到,但是如何在快速回到顶部的过程中不出现卡顿,体现的很是流畅,这点很重要。下面是我根据网上的方法自己修改的一个可以快速回到顶部的类,在此做一下备注,以便日后查看: 1.FastScrollManger.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 import android.content.Context; import android.graphics.PointF; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearSmoothScroller; import android.support.v7.widget.RecyclerView; import android.util.DisplayMetrics; /** *快速回到RecyclerView的顶部,不会出现卡顿 */ public class FastScrollManger extends LinearLayoutManager{ public FastScrollLinearLayoutManager(Contextcontext){ super (context); } public FastScrollLinearLayoutManager(Contextcontext, int orientation, boolean reverseLayout){ super (context,orientation,reverseLayout); } @Override public void smoothScrollToPosition(RecyclerViewrecyclerView,RecyclerView.Statestate, int position){ LinearSmoothScrollerlinearSmoothScroller= new LinearSmoothScroller(recyclerView.getContext()){ @Override public PointFcomputeScrollVectorForPosition( int targetPosition){ return FastScrollLinearLayoutManager. this .computeScrollVectorForPosition(targetPosition); } //控制速度。 @Override protected float calculateSpeedPerPixel(DisplayMetricsdisplayMetrics){ return super .calculateSpeedPerPixel(displayMetrics); } @Override protected int calculateTimeForScrolling( int dx){ if (dx> 3000 ){ dx= 3000 ; } int time= super .calculateTimeForScrolling(dx); return time; } }; linearSmoothScroller.setTargetPosition(position); startSmoothScroll(linearSmoothScroller); } } 2.使用 1 2 3 4 5 mRecyclerView=(RecyclerView)findViewById(R.id.activity_recyclerview); LinearLayoutManagerlayout= new FastScrollManager(CustomActivity. this ,LinearLayoutManager.VERTICAL, false ); mRecyclerView.setLayoutManager(layout); //竖直放置... mRecyclerView.setAdapter(mMyAdapter); mRecyclerView.addOnScrollListener( new MyRecyclerViewScrollListener()); 3.控制显示与隐藏 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 //滑动监听 private class MyRecyclerViewScrollListener extends RecyclerView.OnScrollListener{ @Override public void onScrollStateChanged(RecyclerViewrecyclerView, int newState){ super .onScrollStateChanged(recyclerView,newState); LinearLayoutManagermanager=(LinearLayoutManager)recyclerView.getLayoutManager(); int firstVisibleItemPosition=manager.findFirstVisibleItemPosition(); //当不滚动时 if (newState==RecyclerView.SCROLL_STATE_IDLE){ //判断是否滚动超过一屏 if (firstVisibleItemPosition== 0 ){ mImageViewRebackTop.setVisibility(View.INVISIBLE); } else { mImageViewRebackTop.setVisibility(View.VISIBLE); } } else if (newState==RecyclerView.SCROLL_STATE_DRAGGING){ //拖动中 mImageViewRebackTop.setVisibility(View.INVISIBLE); } } } 4.点击回到顶部按钮的时候,回到顶部 1 mRecyclerView.smoothScrollToPosition( 0 ); 附:执着的念想~ 本文转自 吴雨声 51CTO博客,原文链接:http://blog.51cto.com/liangxiao/1949249,如需转载请自行联系原作者

优秀的个人博客,低调大师

中国人工智能学会通讯——KS-Studio:一个知识计算引擎 1.2 知识图谱构建

1.2 知识图谱构建 知识图谱由实体、实体的属性描述以及实体和实体之间的关联构成。尽管其对于大数据人工智能的实现意义非凡,但其构造过程却极为困难。在早期,知识图谱构建单纯依赖于人类专家。在这一方法中,知识图谱中的实体、实体属性与实体关联关系完全由专家人工构造,此类知识图谱包括WordNet[2]、CyC[3]等。WordNet定义了词汇之间的特定语义关系,包含约15万个词汇、20万个词汇语义对;CyC 包含了320万条人工定义的断言,涉及30万个概念、1.5万个谓词。随着互联网兴起,虽然依靠专家进行知识图谱构建能获得精度较高的知识,但其规模、构建的速度,以及构建成本已经完全无法适应大数据时代发掘大量涌现知识的需求。为此基于数据驱动的自动知识图谱构建方法,逐渐成为国际知识图谱研究的主要方向。 目前,国际上主流的知识图谱构建方法根据其知识来源与顶层概念设计理念可大致分为以下四大类。 1. 基于 Wikipedia infoboxes 等结构化数据的构建方法 这一方法以百科作为知识的主要来源,抽取百科词条作为实体,利用词条中的infobox来填充实体的属性,其主要代表如YAGO[4-6]、DBpedia[7-8]和Freebase[9]等。此类构建方法的特点是质量较高,但更新较慢。 2. 基于开放文档构建 (schemaless) 这一方法以互联网开放网页文档作为知识的主要来源,其基本假定为,如果已知两个实体存在特定的语义关系,那么包含实体对的句子在某种程度上就存在表征二者语义关系的作用。于是可利用自然语言处理技术,从非结构化的文本中抽取名词短语作为实体、动词短语作为谓词,通过共现关联与句法分析发现实体之间的关系。其主要代表系统如Reverb[10]、OLLIE[11]和Prismatic[12]。此类方法可以汇聚大量实体与实体间关系谓词,其主要缺点是发现的知识噪音很大。 3. 基于 fixed ontology/schema 的构建方法 这一方法以少量人工定义的抽象ontology/schema作为知识图谱的顶层概念设计,以此来充实、汇聚符合顶层概念的实体与实体关系,并在此之上进一步发现新的概念,其代表系统如NELL[13]、PROSPERA[14]和DeepDive[15]等。此类方法可用于构建面向特定领域的知识图谱。 4. 基于层次化本体 (ontology) 的构建方法 这一方法综合使用上述几种方法来构建知识图谱,尽管可以得到大量的实体、属性、实体关系,但其涉及的顶层概念数量往往较少,而且不能反映概念间的层次特性,为此,另一些研究试图从开放领域寻找构建具有层次化特性的顶层概念的可能性,其主要代表为Probase[16]。Probase从开放域汇聚了约265万个概念,并计算这些概念的上下位关系,最后基于概率的方法,从横向与纵向对这些概念进行合并,形成一个具有丰富层次的概念树。 上述这几种知识图谱的构建方法均基于文本,目前针对跨媒体数据的自动知识网络构建方法鲜有研究。总体而言,随着现代人工智能技术的发展,基于非结构化开放文档的自动知识图谱构建将是未来发展的主要趋势。

优秀的个人博客,低调大师

《Android App开发入门:使用Android Studio 2.X开发环境》——第 3章 Android App界面设计 3-1 ...

第 3章 Android App界面设计 3-1 View与 ViewGroup(Layout):组件与布局 3-2 使用 LinearLayout建立界面布局 3-3 使用 weight属性控制组件的宽 /高 3-4 通过属性美化外观 3-5 用程序设置组件的外观属性 3-6 使用 ConstraintLayout 提升设计与执行的性能 3-7 使用 Gmail 将程序寄 3-1 View 与 ViewGroup(Layout):组件与布局

优秀的个人博客,低调大师

《Android App开发入门:使用Android Studio 2.X开发环境》——2-7 使用 USB 线将程序部署到手机上执行

2-7 使用 USB 线将程序部署到手机上执行 先前都是在仿真器上测试程序执行结果,若想将写好的程序直接放在 Android 手机上执行,则可用手机附带的 USB 线把手机与计算机相连,再从 ADT 中直接将程序上传到手机中执行。若要使用 USB 连接的方式,则必须打开手机的调试功能。 进入手机的设置界面,按照下面的步骤设置,启用手机的调试功能(不同品牌 / 型号的手机,设置项的名称、位置可能略有不同)。 通过 USB 将 Android App 传送到手机安装并执行 要用手机连接 USB,还要安装手机的 USB 驱动程序,少数手机可使用 SDK 内附的Google USB Drive,多数手机则建议使用专用的驱动程序。若用户尚未安装手机的 USB 驱动程序,也不知如何下载,则可连接到 Android 网站(https://deve

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册