-
跳绳腿变粗 如何消除萝卜腿?
2010-04-01 10:31:15网友瘦腿时总有这个疑问:跳绳... 问:最近尝试跳绳减肥,小腿肌肉立刻变得结实,视觉上还有变粗的感觉,请问有什么方法可以减肥,又能补救小腿变粗? 答:小腿后面有比目鱼肌、腓肠肌这两条大肌肉,跳绳时,由于...网友瘦腿时总有这个疑问:跳绳会让腿粗吗?应该怎样补救?长期跳绳让你腿部肌肉紧实,从而出现萝卜腿。想让萝卜腿变小,应该做一些伸展或者耐力的瘦腿运动。下面通过一问一答的方式解答网友瘦腿疑问,教你做什么瘦腿运动能消除萝卜腿。
问:最近尝试跳绳减肥,小腿肌肉立刻变得结实,视觉上还有变粗的感觉,请问有什么方法可以减肥,又能补救小腿变粗?
答:小腿后面有比目鱼肌、腓肠肌这两条大肌肉,跳绳时,由于垫脚尖、脚跟离地,这两条大肌肉就会收缩,久而久之,小腿肌肉就会变得明显,出现俗称的萝卜腿。
要让萝卜腿变小,可以反过来,试着用脚跟着地、脚尖翘起来走路,每天走个3到5分钟,伸展比目鱼肌跟腓肠肌,腿部线条也会跟着变漂亮。
弓箭步则是另一个可以改善腿粗的方法,原理相同,都是拉长小腿肚肌肉。你也可以试着用脚尖爬楼梯,同时让脚跟下压,感觉到小腿肚肌肉伸展,但切记要扶好,可别跌下楼梯了。
想消耗热量却又不想小腿长出大萝卜,可以考虑慢跑或健走,这类肌耐力训练比较不会让小腿肚肌肉变肥厚,相反地,短跑这类肌威力训练就很容易导致小腿变粗。
另外,要提醒的是,会不会长出萝卜腿,除了运动,基因也有影响。有些人相较之下就比较天生丽质,小腿比较不容易变粗,若你在意小腿粗细,可以考虑换个运动来做。
-
怎样做一个圆环放大的动画
2019-09-26 17:29:54最近遇到一个问题,就是怎么做一个圆环放大的动画,如果是用transform: scale放大的话,会导致圆环变粗,这样看起来就不好看了,如下图所示: 如果改成用width/height做动画的话,动画...最近遇到一个问题,就是怎么做一个圆环放大的动画,如果是用transform: scale放大的话,会导致圆环变粗,这样看起来就不好看了,如下图所示:
如果改成用width/height做动画的话,动画看起来会有点变形,如下图所示:
这个圆圈是用border-radius: 50%画出来的,所以width/height变大的时候,圆圈的半径就会变大,但是在变化的过程中变形了。如果改成用padding做动画,效果也一样,那怎么办呢?一个方法是把动画时间调小一点,这样看起来会减轻,但终究不是根本解决办法。
我在网上搜罗一番,也没有找到好的办法,有的是用JS动态计算width/height,但其实是一样的。
最后我想到是不是可以用SVG来做动画呢?试了一下,果然可以。
首先要用SVG来画,之前是用html css的方式,现在要改一下。如下代码所示:
<svg width="22px" height="22px"> <circle r="8" cx="11" cy="11" fill="#fff" stroke="#2492fc"/> </svg>
circle表示画一个圆,圆心在(11, 11),半径为8px,填充白色,描边为#2492fc,如果你设置fill="none",那么填充色就为透明色。相信很多人对SVG比较陌生,这里我简单介绍一下。除了circle,其它常用的画图标签元素如下图所示:
还有一个画路径的path,如下图所示:
这个是用一个在线SVG画图工具来出来的,画完后会显示SVG代码。path里面可以使用贝塞尔曲线,它是一种很见的曲线,在CSS的animation也会用到,用来控制动画的速度:
贝塞尔曲线(三阶)是根据四个点画出一条光滑的曲线,这种矢量绘制曲线的方法在图形学具有重大的意义。
SVG的基本元素就介绍到这里,现在讨论下怎么做动画呢?我们应该要做半径的动画,如下图所示,使用animate标签:
其中begin指定动画的开始时机,可以是indefinite表示无限循环,或者指定具体的秒数,又或者是在某个动画之后,还可以是事件如mouseover/click/mouseout等,上面使用mouseover,即hover的时候,半径会从小变成到大,如果希望鼠标移开后能缩回去,那么可以再加一个amimate,如下代码所示:
<svg width="22px" height="22px"> <circle r="8" cx="11" cy="11" fill="#fff" stroke="#2492fc"> <animate attributeName="r" from="8" to="10" dur="0.3s" begin="mouseover" fill="freeze" class="magnify"/> <animate attributeName="r" from="10" to="8" dur="0.3s" begin="mouseout" fill="freeze" class="shrink"/> </circle> </svg>
如果是希望用JS控制的话,可以获取到这个animate元素,然后用它的beginElement方法开始动画,如下代码所示:
// 如果选中的话,就做放大的动画 if (checked) { $("animate.magnify").beginElement(); } // 如果失去选中态的话就做缩小动画 else { $("animate.shrink").beginElement(); }
这样看起来动画就会优雅很多,如下图所示:
另外还可以用CSS的animation等控制SVG做动画。
上面只是介绍了最最简单的SVG动画,更多复杂的效果可以见CSS Tricks的教程。例如可以做形状的动画:
又如做一个沿着路径运动的动画:
本篇最主要还是想说一件事:当你发现用html不太好做动画时,可以尝试用svg做一下,几行svg就能做出一个很顺滑的动画。例如这篇文章《Animating Border》介绍了几种做border变粗的动画的方法,笔者先后使用了border-width/outline/clip-path/linear-gradient/box-shadow等,最后效果其实都不太好,还不如直接用svg做一下。
-
SOA中怎样确定服务的粒度
2021-03-04 20:02:05SOA,ServiceOrientedArchitecture,顾名思义是面向服务的架构,整个系统要借助服务的设计来完成建模,因此服务...细粒度的服务,可以让服务的实现变得简单,但这样会增加服务的数量,服务过细过多,这样必然有一些服务 -
天猫精灵如何和我们聊天?
2020-04-17 17:15:37简介:天猫精灵已经走过几年的历史,在这几年中,天猫精灵变得更加智能,其中的体现之一是交互...在一问一答方式中,孙悟空首先需要唤醒金箍棒,然后再发出大一些的指令,金箍棒在收到指令后会变粗变高并回复已...简介: 天猫精灵已经走过几年的历史,在这几年中,天猫精灵变得更加智能,其中的体现之一是交互方式变得越来越自然。本文将介绍天猫精灵的全双工自然对话交互方式。
什么是全双工自然对话?
如果孙悟空的金箍棒加入天猫精灵语音交互的支持,那么孙悟空在获得金箍棒后会怎样给他的猴儿们演示呢?
在一问一答方式中,孙悟空首先需要唤醒金箍棒,然后再发出大一些的指令,金箍棒在收到指令后会变粗变高并回复已经变大。如果孙悟空要想让金箍棒再大一些,需要再次唤醒金箍棒并发出指令。每次想让金箍棒大一些,孙悟空就要重复这个过程。
在连续对话方式中,孙悟空也要先唤醒金箍棒,然后在发出大一些的指令,金箍棒也会在收到指令后会变粗变高并回复已经变大。如果孙悟空要想金箍棒再大一些,可以选择等待金箍棒的回复结束,然后直接说出大一些的指令。接下来每次想让金箍棒大一些,孙悟空只需要等待金箍棒回复结束,然后直接说出大一些的指令即可。
在自然对话模式中,孙悟空先唤醒金箍棒,然后发出大一些的指令,金箍棒在收到指令后会直接变粗变高。接下来,如果孙悟空想金箍棒在大一些,直接说出大一些指令即可,不需要再次唤醒,也不需要等待回复结束。
天猫精灵有孙悟空演示金箍棒的场景吗?答案是肯定的,例如音量控制就非常相似。那么天猫精灵的全双工自然对话是怎么实现的呢?
技术方案
设备端:负责听和说。主要解决什么时候听,有没有听到语音,听到的语音有多长;什么时候说,以及说什么。
语音识别:即 ASR,将用户的语音识别成文本,并提取声音的特征。
语义理解:即 NLU,负责理解用户说了什么并转换成机器可读的信息。
语音合成:即 TTS,负责将文本转换成语音。
对话管理:即 DM,根据语义理解的结果和会话的上下文信息调用各种服务完成用户的请求。
人机交互识别:根据 ASR 输出的声学特征判断收到语音是不是用户和音箱说的话。
设备端交互管理
用户打开自然对话后,服务端在对用户进行应答的同时会下发自然对话收音指令到设备端。
设备端收到自然对话收音指令后,进入自然对话状态并开始收音。
在自然对话状态下,设备端检测到用户说话时开始发起自然对话交互请求;检测到用户说话结束时结束请求,并上报自然对话状态的持续时长和用户的说话时长到服务端。
设备端收到服务端应答,但是应答中不包含自然对话收音指令时,如果当前处于自然对话状态则退出自然对话。
自然对话收音指令中包含收音的持续时长,如果在这个时长内没有检测到声音也会退出自然对话。
设备端播放管理
在用户交互过程中,需要根据用户的意图决定被打断的播放动作是否需要继续。比如,用户在播放音乐时说“收藏这首歌”,那么在执行用户指令后需要继续恢复播放音乐;而用户在收听天气时问了算术,那么在执行用户的指令后不需要继续播放天气。
所以我们把音箱播放的类型分成 3 类,即需要恢复的播放、不需要恢复的播放以及提示音,并根据当前的播放类型和即将播放的类型来确定是否保存播放状态。
持续时长
用户不会一直和音箱交互,持续的收音和处理会极大的增加云端的处理负担,也没有必要,因此我们需要对自然对话的持续时长进行限制。但是用户和用户交互的时长又不是确定的,因此我们采取了滑窗的计时方式,即每一次用户交互后,我们都会重新计时,等待用户进行交互。
人机交互识别
在自然对话持续的过程中,用户可能在与其它人聊天,我们需要识别出来,并且做到用户无感知。在实际实践过程中,我们以语音识别时提取的声学特征为输入,通过深度学习算法来判断用户是否在与与音箱进行交互。如果发现请求不是用户和精灵的交互,精灵不会做出响应。
会话流
在自然对话持续的过程中,语义理解服务会记住会话的历史,并结合历史来处理用户的请求,通过这种方式,用户的多次连续交互就可以形成一个会话流,与用户的交互也更加自然。例如,用户询问今天说“今天天气怎么样”,精灵会回复今天的天气,如果用户再询问明天的天气,那么用户不用说“明天天气怎么样”,而只需要说“明天呢”。
总结
全双工自然对话是一个系统的工程,涉及到从设备端的前端信号处理、设备端语音交互管理、到云端网关、语音识别、语义理解等整个语音交互链路,涉及到部门多个团队的协作,项目的顺利推进离不开各个团队的通力协作,充分体现了“因为信任所以简单”和“此时此刻非我莫属”的价值观。
全双工自然对话上线后受到了用户的广泛好评,自然对话的用户只要使用精灵,几乎都会使用这个功能来与天猫精灵交互,而这部分用户的活跃度也比其它用户更高。
当然,在提升用户交互体验的道路上,全双工自然对话不是终点,还有很多可以提升的地方,我们会继续努力,为用户提供更好的交互体验。
-
Android中TextView超细字体 ,各种尝试
2018-04-10 14:45:34一般来说,字体变大,文字也跟着变粗了,怎样让比较大的字体细一点。1.用HTML尝试 TextView textView = (TextView)findViewById(R.id.testTextView); String source = "这只是一个测试,测试"; ...一般来说,字体变大,文字也跟着变粗了,怎样让比较大的字体细一点。
1.用HTML尝试
TextView textView = (TextView)findViewById(R.id.testTextView);
String source =
"这只是一个测试,测试"
;
textView.setText(Html.fromHtml(source));
结果发现差别不大。2.Spannablemsp = new SpannableString("字体测试字体大小一半两倍前景色背景色正常粗体斜体粗斜体下划线删除线x1x2电话邮件网站短信彩信地图X
轴综合/bot");
//设置字体(default,default-bold,monospace,serif,sans-serif)
msp.setSpan(new TypefaceSpan("monospace"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
msp.setSpan(new TypefaceSpan("serif"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置字体大小(绝对值,单位:像素)
msp.setSpan(new AbsoluteSizeSpan(20), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
msp.setSpan(new AbsoluteSizeSpan(20,true), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第二个参数boolean dip,如果为true,表示前面的字体大小单位为dip,否则为像素,同上。
//设置字体大小(相对值,单位:像素) 参数表示为默认字体大小的多少倍
msp.setSpan(new RelativeSizeSpan(0.5f), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //0.5f表示默认字体大小的一半
msp.setSpan(new RelativeSizeSpan(2.0f), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默认字体大小的两倍
//设置字体前景色
msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置前景色为洋红色
//设置字体背景色
msp.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置背景色为青色
//设置字体样式正常,粗体,斜体,粗斜体
msp.setSpan(new StyleSpan(android.graphics.Typeface.NORMAL), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //正常
msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 20, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗体
msp.setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 22, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //斜体
msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 24, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗斜体
//设置下划线
msp.setSpan(new UnderlineSpan(), 27, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置删除线
msp.setSpan(new StrikethroughSpan(), 30, 33, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置上下标
msp.setSpan(new SubscriptSpan(), 34, 35, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //下标
msp.setSpan(new SuperscriptSpan(), 36, 37, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //上标
//超级链接(需要添加setMovementMethod方法附加响应)
msp.setSpan(new URLSpan("tel:4155551212"), 37, 39, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //电话
msp.setSpan(new URLSpan("mailto:webmaster@google.com"), 39, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //邮件
msp.setSpan(new URLSpan("http://www.2cto.com"), 41, 43, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //网络
msp.setSpan(new URLSpan("sms:4155551212"), 43, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //短信 使用sms:或者smsto:
msp.setSpan(new URLSpan("mms:4155551212"), 45, 47, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //彩信 使用mms:或者mmsto:
msp.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //地图
//设置字体大小(相对值,单位:像素) 参数表示为默认字体宽度的多少倍
msp.setSpan(new ScaleXSpan(2.0f), 49, 51, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默认字体宽度的两倍,即X轴方向放大为默认字体的两倍,而高度不变
//设置字体(依次包括字体名称,字体大小,字体样式,字体颜色,链接颜色)
具体可以参看http://blog.csdn.net/knxw0001/article/details/88388313.自定义View
继承
TextView
,在onDraw
方法中设置画笔粗细TextPaint tp = new TextPaint(); tp.setAntiAlias(true); tp.setStyle(Paint.Style.FILL_AND_STROKE); tp.setStrokeWidth(0.1f);
setStrokeWidth
方法默认参数是0,而且不接受负数参数,也就是说,只能加粗不能变细。
4.Thin字体从字体本身出发,尝试寻找细细的字体
<item name="android:fontFamily">sans-serif-light</item>
继承这个style。数字和英文变成细文字体。 不再是安卓原生的字体
最后
设置 app 字体大小不跟随系统字体调整而变化
/** 2 * 设置 app 不随着系统字体的调整而变化 3 */ 4 @Override 5 public Resources getResources() { 6 Resources resources = super.getResources(); 7 Configuration configuration = resources.getConfiguration(); 8 configuration.setToDefaults(); 9 return resources; 10 }
-
抵抗DDoS 防火墙更新换代
2009-11-17 15:45:04面对DDoS的强势***,历数现有的很多先进的防火墙产品概念,往往会不由自主地思考,为了抵抗DDoS简单粗暴的进攻,哪种...然而,利用大面积的受控制的僵尸主机,现今的***者可以发起非常大规模的***,足以造成一些大... -
简化输入 — 让网页表单更亲切
2012-06-15 11:06:50大部分人不喜欢填表单,因为人们来到网站,主要目的不是填表,而是浏览或者购买。精心设计的表单,使输入变得流畅让人心情愉悦,而糟糕的设计让人扶墙吐血。那怎样才是优秀的表单呢?页面的布局、逻辑组织、视觉样式... -
简化输入 — 让网页表单更亲切【交互设计】
2012-02-23 20:26:05大部分人不喜欢填表单,因为人们来到网站,主要目的不是填表,而是浏览或者购买。精心设计的表单,使输入变得流畅让人心情愉悦,而糟糕的设计让人扶墙吐血。那怎样才是优秀的表单呢?页面的布局、逻辑组织、视觉样式... -
面试求职经验交流
2007-09-12 09:19:00但对公司的考题,只提供很粗的范围即可,考题属公司机密,不可在网上公开, 况且公司每年的考题都会变.我们主要是为了解不同类型的公司面试时通常对什么感兴趣,以找出在校学习时应努力的方向和自己的差距. 大公司通常... -
面试求职经验交流 (renewing...)
2004-08-03 03:39:00但对公司的考题,只提供很粗的范围即可,考题属公司机密,不可在网上公开, 况且公司每年的考题都会变.我们主要是为了解不同类型的公司面试时通常对什么感兴趣,以找出在校学习时应努力的方向和自己的差距. 大公司通常... -
清华大学的计算机网络课件
2010-03-26 11:11:56问题4-14:粗缆以太网有一个单独的收发器。细缆以太网和双绞线以太网有没有收发器?如果有,都在什么地方? 问题4-15:什么叫做“星形总线(star-shaped bus)”或“盒中总线(bus-in-a-box)”? 问题4-16:以太网的... -
计算机网络常见问题解答
2010-06-07 08:19:11问题4-13:IP数据报中的数据部分的长度是可变的(即IP数据报不是定长的)。这样做有什么好处? 问题4-14:IP地址中的各种类别的地址所拥有的地址数目的比例是怎样的? 问题4-15:在IP地址中,为什么使用最前面的一个... -
word使用技巧大全
2011-03-18 20:37:53使Word中的字体变清晰Word文档中使用“仿宋”字体很淡,可按以下方法使字体更清晰: 84 四十一、word和execl使用技巧 84 1、Word下如何使用着重号 84 2、让Word表格快速一分为二 84 3、Word中巧用Alt键 85 4、巧用... -
网络常见问题与故障1000例(下)
2007-08-24 15:29:03超过254台计算机怎样在同一个网段 10. 教育网多用户共同上网问题 11. 限制部门计算机间的访问 12. 不能相互访问却要连接共享 1.1.2 设备互连 13. 10Base-T共享网络连接 14. 共享网络传输速率低 ... -
网络常见问题与故障1000例
2007-08-24 15:24:34超过254台计算机怎样在同一个网段 10. 教育网多用户共同上网问题 11. 限制部门计算机间的访问 12. 不能相互访问却要连接共享 1.1.2 设备互连 13. 10Base-T共享网络连接 14. 共享网络传输速率低 ... -
维基百科:数学基础(zslcn周生烈编译摘注评)
2014-02-06 21:54:452.1.6 Rough-and-ready realism 粗线条的现实主义 2.1.7 Philosophical consequences of the Completeness Theorem 完备性定理的哲学推论 2.2 More paradoxes 更多的悖论 3 Partial resolution of the crisis 危机的... -
Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好
2011-01-28 17:02:08这一节只讲述怎样在其 上的菜单栏里添加菜单和图标。 1.新建Qt4 Gui Application 工程,将工程命名为MainWindow,其他选项默认 即可。 生成的窗口界面如下图。其中最上面的为菜单栏。 2.我们在Type Here 那里双击,... -
React & Npm 组件库维护经验
2020-12-29 20:29:42这极大的激发了大家的热情。写代码的时候感觉在造轮子,在写导航栏、稍微通用点儿的功能时都自觉的将其拆了出来,刚要把标题写死,猛然想到 "如果这里用传参变量,UI加个参数配置... -
软件工程教程
2012-07-06 23:10:29在较大的公司,为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。 根据需求对系统进行定制外,为系统编写定制的应用。 第二类开发者 在创业型公司或者是独立开发者,盈利方式主要2种: 为国外公司外包开发,... -
C++MFC教程
2013-05-21 13:37:15更重要的是理解并能运用C++的各种特性,这些在以后的开发中都会有很大的帮助,特别是利用MFC进行开发的朋友对C++一定要能熟练运用。 2、理解Windows的消息机制,窗口句柄和其他GUI句柄的含义和用途。了解和MFC各个...