最近群里的开发人员咨询怎样实现刻度尺的滑动效果去选择身高体重等信息。给个横着的效果,自己试着去改编或者修改一下,看看通过自己的能力能不能做出竖着的效果来,过两天我再把竖着的那个滑动选择效果分享出来。 horizontal" </LinearLayout </HorizontalScrollView </RelativeLayout </LinearLayout 第二步:水平空白刻度布局 background="@null" android:textColor="@color/white" android:textSize="14sp" / </RelativeLayout 第三步:中间刻度尺布局
本文实例为大家分享了自定义RecyclerView实现不固定刻度的刻度尺的具体代码,供大家参考,具体内容如下 ##不均匀刻度效果图 ? ##等比例刻度效果图 ? 实现功能目前 1、实现类似日期/分类等大小不固定的水平刻度尺效果 2、实现标准刻度尺效果 3、监听RecyclerView滑动时居中条目 4、去掉边缘阴影 定义RecyclerView public class CenterRecyclerView extends RecyclerView { //设置RecyclerView的速度 private static final int MAXIMUM_FLING_VELOCITY 时不能继续滑动 if (mPosition <= 18) { CeterScroll(0, 18); } } //速度变小时自动滚动到中间位置 private void CeterScroll(int CalendarDateBean data, int position) { if (data.getDay() == 1) { //R.id.tv_1为线需要居中否则和中轴线不会完全对称 R.id.tv_2为大刻度文字
提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。
今天我做的是一个自定义刻度尺控件,由于项目需求需要使用刻度尺那样滑动选择,由于对自定义控件的认识还不够深入,于是花了一周多时间才把这个控件给整出来,也是呕心沥血的经历啊,也让我对自定义控件有了自己的认识 考虑可扩展,但是时间紧迫,只可以支持两种类型效果图中两种类型 * * @param value * 初始值 * @param maxValue * 最大值 * @param model * 刻度盘精度 public void setValueChangeListener(OnValueChangeListener listener) { mListener = listener; } /** * 获取当前刻度值 android:gravity="center" android:layout_weight="1"/ </LinearLayout 如上根据效果图,我需要一个TextView进行显示,还有就是我的自定义刻度尺控件了 ); tv_values= (TextView) findViewById(R.id.tv_values); //设置RulerView的初始值 rv_view.setValue(60); //初始化刻度尺范围
View将根据这些数据去计算出需要几个小刻度和几个长刻度,和每个长刻度上面显示的数值。 指针可以随意的定制。 当滑动停止后,刻度尺会根据四舍五入将距离指针最近的长刻度滑动到指针的位置。 刻度尺如果范围很大的话总宽度肯定会超出屏幕的,但是Canvas不会绘制屏幕之外的部分,除非等到屏幕之外的部分显示出来。 low:刻度尺的最小边界。 height:刻度尺的最大边界。 当前的currentX小于中间指针刻度Point的x坐标,并且小于刻度的最小值low的x坐标。 —————–Point-currentX–low——height———- 当前的currentX小于中间指针刻度Point的x坐标,并且大于刻度的最小值low表示的x坐标小于刻度尺的最大刻度height 想到之后的变体,感觉刻度本身的View跟指针分开是比较好扩展的,Group只需要给刻度尺控件传入中间指针的(x,y)坐标就好了。
刻度尺效果虽然看起来很美,我个人认为很不实用,即使再不实用,也有用的,鉴于群里成员对我的苦苦哀求,我就分享一个他用不到的,横屏滑动刻度尺,因为他需要竖屏的,哈哈…… 最近群里的开发人员咨询怎样实现刻度尺的滑动效果去选择身高体重等信息 我倒是做过这种效果,貌似群里要的那个开发者要竖着的刻度尺,那我就先分享个横着的刻度尺滑动选择效果。哈哈……我就是这么贱,贱贱的才惹人爱嘛! </LinearLayout> </HorizontalScrollView> </RelativeLayout> </LinearLayout> 第二步:水平空白刻度布局 android:textColor="@color/white" android:textSize="14sp" /> </RelativeLayout> 第三步:中间刻度尺布局
流程分析 我看目前网上几乎都是水平的可滑动的刻度尺插件,几乎没有竖直的插件,其实也大同小异。 因为做这个东西的需要,所以我需要做一个竖直的刻度尺(而且我本人也不喜欢用插件,我想有一天实现我的插件梦)。 当我们清晰了这个刻度尺的架构之后,需要做的就是用`append`的方法(这里我用的jQuery)插入到指定的位置就可以了(因为这个时候你的刻度尺css代码基本已经完成)。 ? param.minUnit) * 10 * param.mult) } else { $(" .rulerPointer").css("bottom", '0'); } 然后我们用each遍历的方法给刻度尺标上刻度值 unitset:10, //刻度尺单元长度 value:60,
群里有人问我要竖着的滑动尺效果,前天我贱贱地分享了一个横向的滑动效果,让大家模仿者,自己尝试着去改编一下,不知道有多少人弄出来了,尝试着去弄得请举手,好吧,我也不用说放下了,根本就没人举。 </RelativeLayout> </LinearLayout> </LinearLayout> </LinearLayout> 第二步:竖向空白刻度布局 null" android:textColor="#000000" android:textSize="14sp" /> </RelativeLayout> 第三步:中间刻度尺布局
除了距离以外,还有一个概念,叫做不相似度dissimilarity, 与距离相比,不相似度也具有非负性,同一性和对称性,但是不具有值递性。
第一次接触NMDS,看到的时候一脸懵逼,后来经过查阅资料学习,非度量多维尺度分析是一种将多维空间的研究对象(样本或变量)简化到低维空间进行定位、分析和归类,同时又保留对象间原始关系的数据分析方法。 其基本特征是将对象间的相似性或相异性数据看成点间距离的单调函数,在保持原始数据次序关系的基础上,用新的相同次序的数据列替换原始数据进行度量型多维尺度分析。 换句话说,当资料不适合直接进行变量型多维尺度分析时,对其进行变量变换,再采用变量型多维尺度分析,对原始资料而言,就称之为非度量型多维尺度分析。 其特点是根据样品中包含的物种信息,以点的形式反映在多维空间上,而对不同样品间的差异程度,则是通过点与点间的距离体现的,最终获得样品的空间定位点图,理解起来有点难度,我还是比较喜欢实践操作。
它通过构建多尺度深度特征学习网络 (MDFN) 不仅考虑单个对象和局部上下文,还考虑它们之间的关系。 1 前景回顾 如果想详细知道上集我们具体说了多尺度特征的重要性及其发展,请点击下方链接,查阅相关内容: 多尺度深度特征(上):多尺度特征学习才是目标检测精髓(干货满满,建议收藏) SSD框架 ASPP MDFN通过集成多边界框、多尺度和多层次技术提供多尺度目标检测器。 这个过程是多尺度方案的第二个特性。 研究者使用多尺度过滤器来激活各种大小的感受野,以增强语义和上下文信息的提取。要注意的另一个方面是要素图的大小。 因此,由于其输入特征图的分辨率比在较早的层中产生的分辨率小得多,因此在网络深处接受的多尺度滤波器将具有较少的计算负担。这抵消了滤波操作增加带来的计算负担。这是拟议的多尺度方案的第三个特性。
现在你了解了如何使用Win2D在CanvasControl上绘制图形并在一个应用页面里使用的过程,让我们来更深入的完成这把尺子。 绘制刻度 一把尺有小刻度和大刻度,我们允许用户自定义刻度的步长。 ? ,20代表大刻度的长度。 运行工程,你能看见一把带有大、小刻度的尺 ? ,等于大刻度的长度加10个像素。 DrawBorder (是否绘制边框) ScaleMarkPosition (刻度位置:左、右、两者都要) ScaleMarkLength (刻度长度) ScaleMarkColor (刻度颜色) TextColor
尺子刻度的宽度 private var mLineMaxHeight = 420f // 尺子刻度分为3中不同的高度。 // 尺子 最左边 最后边是否需要透明 `(透明效果更好点) private var mTextHeight = 0.toFloat()//尺子刻度下方数字的高度 private var mTextPaint =null // 尺子刻度线的画笔 private var mTotalLine:Int = 0 //共有多少条 刻度 private var mMaxOffset:Int = 0 //所有刻度 共有多长 // 尺子刻度的宽度 private var mLineMaxHeight = 420f // 尺子刻度分为3中不同的高度。 =null // 尺子刻度线的画笔 private var mTotalLine:Int = 0 //共有多少条 刻度 private var mMaxOffset:Int = 0 //所有刻度
尺子刻度2条线之间的距离 private float mLineWidth = 4; // 尺子刻度的宽度 private float mLineMaxHeight = 420; // 尺子刻度分为 float mTextMarginTop = 10; //o private float mTextSize = 30; //尺子刻度下方数字 textsize private boolean mAlphaEnable = false; // 尺子 最左边 最后边是否需要透明 (透明效果更好点) private float mTextHeight; //尺子刻度下方数字 的高度 private Paint mTextPaint; // 尺子刻度下方数字( 也就是每隔10个出现的数值) paint private Paint mLinePaint; // 尺子刻度 paint ; // 默认状态下,mSelectorValue所在的位置 位于尺子总刻度的位置 private int mLastX, mMove; private OnValueChangeListener
step : 步长的含义就是每隔多少分一段,比如我们设定的最大金额为10000元, 那设置step为1000就意味着,每隔1000元表示一个小段,这也是canvas上标尺刻度需要绘制的数据。 lineBottom : 独立出来不和标尺刻度一起绘制,在绘制标尺的底部横线时,我是这样想的。底部横线的宽度其实就是canvas的宽度,没必要从标尺的初始画到标尺的结尾。 而且为了用户体验,刻度的初始位置和结束位置都位于整个canvas的中心。所以,如果合在一起绘制,你需要先绘制一段没刻度的横线,然后再绘制刻度,到最后还要绘制一段没刻度的横线。 这给无疑让绘制和后续的标尺移动变得相当麻烦。所以我把它抽出来,就是一条贯穿canvas的普通横线。 lineRed : 标定轴,始终在canvas的中间,也独立出来不和标尺刻度一起绘制。 属性都有了,下面添加一个draw方法,把我们的标尺绘制出来。 三、标尺绘制 (1) 绘制标尺刻度部分 ? 这里有个截图错误,应该是 i+=this.miniPxStep。
context; private int maxValue = 500; /** * 起点x的坐标 */ private float startX ; private float startY ; /** * 刻度线的长度 */ private float yLenght ; /** * 刻度的间隙 */ // private float gap = 8f; private float gap = 10; /** * */ // private float unit = 10f; private int unit = 10;//隔unit个刻度写一个数字 //每个大刻度代表值iValue private int mCurrentX = horizontalScrollView.getScrollX(); mScrollHandler.postDelayed(this, 50); } } }; /** * 设置默认刻度尺的刻度值 ) { // this.maxScaleValue = maxScaleValue; } /** * 设置当前刻度尺的刻度值,并滚动到相应的位置 * * @param scaleValue */ public
CircularLinearGauge,//圆形仪表 SemiCircularLinearGauge,//半圆形仪表 HorizontalLinearGauge,//横向刻度尺 VerticalLinearGauge,//纵向刻度尺 dom) { var watch1 = new CircularLinearGauge dom.byId("watch2") ); var watch3 = new HorizontalLinearGauge(//横向刻度尺 dom.byId("watch3") ); var watch4 = new VerticalLinearGauge(//纵向刻度尺
一、前言 进度条标尺控件的应用场景一般是需要手动拉动进度,上面有标尺可以看到当前进度,类似于qslider控件,其实就是qslider+qprogressbar的杂交版本,不过我才用的是纯qpainter 绘制的方式,这样非常灵活可靠,继承自qwidget,这个控件属于标尺类控件中的一个,就是在刻度尺控件基础上增加了鼠标按下拖动进度的功能。 * 5:可设置范围值 * 6:可设置进度颜色 * 7:支持负数刻度值 * 8:可设置标尺在上面还是下面 * 9:支持直接按下定位进度 */ #include <QWidget> #ifdef ); //设置线条等分步长 void setLongStep(int longStep); void setShortStep(int shortStep); //设置刻度尺在上面 7:支持负数刻度值 8:可设置标尺在上面还是下面 9:支持直接按下定位进度三、效果图[在这里插入图片描述]四、头文件代码 超过150个精美控件,涵盖了各种仪表盘、进度条、进度球、指南针、曲线图、标尺、
如果你看到一个有趣的可视化图表,想快速的把它看懂,那么你只需关注这五个地方就可以了:1)标题;2)轴和刻度尺;3)图例;4)数据来源;5)数据本身。 并不是所有的可视化图表都具备有这5个要素,这也是允许的,因为有些可能不需要刻度尺(例如一个世界地图就没有刻度尺),有时候有些要素并不明显,你可能需要点击一个图标才能显示出来。 2、轴和刻度尺 ? 3、图例 ? 4、数据来源 ? 5、数据本身 ? 翻译:hyde PPV课原创翻译 转载请注明出处
D3.js库-7-添加坐标轴 坐标轴 坐标轴是可视化图表中经常出现的一种图形,由一些刻度和线列段组成。D3中是没有现成的坐标轴,SVG中因而没有现成的图形元素,需要通过D3提供的其他组件来手动添加。 --第一个刻度--> <g> <line></line> <text></text> <! --第一个刻度的文字--> </g> <g> <line></line> <text></text> </g> D3中提供了一个组件能够自动添加:d3.svg.axis() 每个分组g看做是一个刻度值和线段组成的group。 定义一个坐标轴 定义一个坐标轴需要使用上一篇文章中使用的比例尺。 .range([0,250]); const axis = d3.axisBottom(scaleLinear) // 定义向下的坐标轴 .ticks(7); // 坐标轴上的刻度数
云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。
扫码关注云+社区
领取腾讯云代金券