精华内容
下载资源
问答
  • 项目动画方案

    千次阅读 2017-02-04 10:46:25
    新年第一天上班,没想到就立春了...动画相信大家都不陌生,在 App 开发过程中,适当的使用动画可以提升用户体验,使我们的产品锦上添花,对于一些简单的动画,我们很容易就能实现,但是对于一些比较复杂的动画,实现起

    新年第一天上班,没想到就立春了,俗话说,一年之计在于春,全新的 17 年开始啦,来,收拾下心情,投入到工作中,撸起袖子,就是干!

    就在前几天,Airbnb 开源了一个项目叫做 Lottie,我个人觉得这个项目简直碉堡了!

    动画相信大家都不陌生,在 App 开发过程中,适当的使用动画可以提升用户体验,使我们的产品锦上添花,对于一些简单的动画,我们很容易就能实现,但是对于一些比较复杂的动画,实现起来就比较麻烦了,比如下图的一些动画:





    怎么样?这些可不是简单的移动、缩放、旋转就搞得定的,可能有些人思考了之后大概有以下实现思路:

    • 使用 Gif,这种方式当然可行,但是使用 Gif 占用空间较大,而且需要为各种屏幕尺寸、分辨率做适配,因为 Android 没有提供原生 Gif 的 api 支持,所以这种方案还会遇到兼容性问题;

    • 使用帧动画,这种方式还不如使用 Gif,一般来说使用帧动画占用空间比 Gif 还要大的多,而且一样要做多屏幕分辨率的适配,不过不会遇到兼容性问题;

    • 使用视频,这种方式当然可以,但是一般来说宣传片才用的上视频,一般的动画远不需要用视频才能实现的,未免有些大材小用了,而且占用空间依然很大。

    就没有更好的实现方式了么?

    当然有,Android 5.x 之后提供了对 SVG 的支持,通过 VectorDrawable、AnimatedVectorDrawable 的结合可以实现一些稍微复杂的动画,兼容性是一个问题,不过整个实现流程非常麻烦,每次全新实现一个动画都得重头来过,最最关键的是,如果一个公司下的 App,iOS 也要实现一套一样的动画,资源的占用就显得过大了。

    而 Airbnb 开源的这个项目完美的解决以上难题,我们来看下整个流程是什么样的。

    假设我们要做一个引导页面的欢迎动画,这个一般设计师会用 Adobe 旗下的 After Effects (简称 AE)来做个动画出来,设计师用 AE 做个动画比工程师用代码去实现一个动画要快的多的多,调整起来也很方便,之后 AE 上有一款插件叫做 Bodymovin,这个插件也比较屌,可以直接根据 AE 上的动画文件导出 json 文件,这个 json 文件描述了该动画的一些关键点的坐标以及运动轨迹,之后我们在项目中引用 Lottie 开源库,在布局文件中简单的加上这么一句就完美的实现了。

    <com.airbnb.lottie.LottieAnimationView
        android:id="@+id/animation_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:lottie_fileName="hello-world.json"
        app:lottie_loop="true"
        app:lottie_autoPlay="true" />

    或者代码中这样使用:

    LottieAnimationView animationView = findViewById(R.id.animation_view);
    animationView.setAnimation("hello-world.json");
    animationView.loop(true);

    值得一提的是,我们的 hello-world.json 文件只需要放在 app/src/main/assets 目录下就 ok 了。

    当然,还有更多的用法,比如给动画添加事件,比如描述动画的 json 文件可以远程更新下载到本地,这样就可以不动声色的定期更新你的动画了。

    有了这个库,我们可以充分发挥我们的想象力,很简单方便的就实现了一套很酷炫的动画,最重要的是,这个库是跨平台的,支持 Android、iOS 以及 ReactNative,共用一套 json 动画描述文件。

    其实 Facebook 前段时间开源了一个类似的库叫做 Keyframes,也是跨平台的,但是 Littie 比 Keyframes 支持的特性更多,而且据 Airbnb 官方博客介绍,以后对让这个库支持更多的特性与功能,不得不说,真乃良心!

    最后,这个库的开源地址在这里:

    Android: https://github.com/airbnb/lottie-android

    iOS: https://github.com/airbnb/lottie-ios

    ReactNative: https://github.com/airbnb/lottie-react-native

    展开全文
  • 项目的外观动画 演示版 ItemAnimator 转接器 如何使用? 建立 Gradle 在模块的build.gradle文件上,将此实现语句添加到dependencies部分: dependencies { // Kotlin implementation ' jp.wasabeef:recyclerview-...
  • 这个功能应该用的比较多,开发低功耗相关产品这个功能可以用上这个工具。 DDR Test Suite 是一个目前(19年3月)只针对于STM32MP1系列,其他MCU没有这个功能。 工具这项功能后期详细讲述。   八、说明 ...

    说明:

    本文原创作者『strongerHuang

    首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop

    标签:STM32、 STM32CubeMX、 LL库、 HAL库

     

    一、写在前面

    上一篇文章让你入门STM32CubeMX,你可能还是会觉得心里摸不到底。本文就从另外一个角度带你了解STM32CubeMX。

    本文讲述STM32CubeMX各主要界面内容,让你对STM32CubeMX这个工具有一个比较直观的认识。

     

    二、主界面

    打开STM32CubeMX,呈现的界面大致如下图,界面比较简洁。我把它划分为六大板块。

     

    1.菜单 STM32CubexMX V4版本(前面老版本)有很多功能做在菜单里面,但V5版本优化(删减)菜单,把一些常用功能做在相应界面里面了。

    菜单内容后面会单独详细讲述。

    2.社交链接 facebook(脸书)、youtube、twitter(推特)以及ST社区、官网信息等。

    相信大家都能理解,就像国内微信、微博、QQ等与ST相关的一些社交链接。

    3.面包屑导航 这个名词可能很多人没听过,英文名叫Bread crumbs,中文名叫面包屑导航。当然,可以理解为导航栏。

    进入配置界面,如下图:

     

    4.已存在工程 ·Recent Opened Projects:最近打开的项目 ·Other Projects:打开其他已存在工程

    5.新建工程 ·Start My project from MCU:从MCU开始我的项目 ·Start My project from STBoard:从ST开发板开始我的项目 这里是进入MCU/BOARD选择器,选择MCU型号和ST开发板型号(其中界面下面详细描述)。

    6.软件管理 ·CHECK FOR UPDATE:检查更新 ·INSTALL/REMOVE:安装/移除软件

    这里其实就是安装的软件进行管理,包含HAL库。安装的过程可以参看文章: STM32CubeMX系列教程02_STM32CubeMX工具、HAL库下载、安装说明

     

    三、MCU/BOARD选择器界面

    MCU和BOARD选择器的界面类似,从上面主界面第5点新建工程进入。

    选择器主要功能是:通过输入MCU/BOARD型号,或者按照特定条件(如MCU系列、FLASH大小、外设控制器数量等)来筛选符合自己条件的MCU/BOARD。

    这里的选择器可以当做STM32的选型工具。

     

    1.MCU和BOARD选择器切换 在这两种选择器之间进行切换,两种选择器界面包含类似。

    2.选择器“筛选” 筛选的方式有两种: A.通过输入型号 B.通过条件筛选

    3.描述 ·Features:选中型号MCU/板卡特征 ·Block Diagram:框图 ·Doc&Resources:文档和资源 ·Datasheet:数据手册下载(下载PDF文档) ·Buy:购买(跳入官网)

    4.MCU/BOARD列表 通过输入型号,或条件筛选之后,符合条件的MCU/BOARD列表。

    **选择器界面**动画效果:

    四、Pinout引脚输出配置

    这里翻译为引脚输出配置其实有点不正确,因为这里包含系统、外设资源、以及中间件等一些独立模块的配置

     

    这一板块的信息量比较大,使用STM32CubeMX的重点和难点大部分在这一界面

    我主要把它划分为三块:资源、配置和引脚/系统预览。可能不同系列、不同型号的MCU这里的配置信息都不同。

    这里不详细讲述,后期我会针对具体MCU实例的进行详细讲述

     

    五、时钟配置

    STM32各个系列的时钟都比较强大(请看时钟树),同时,各系列,各型号的时钟树也可能有差异。

    STM32CubeMX的时钟配置具有强大的一个功能,重点是图形化界面,让人一看就明白。

    同时,时钟配置里面有各种提示信息:比如可选择的分频倍频、最大时钟频率、警告错误提示等(如下图)。

     

    六、工程管理

    这一章节内容对工程相关的配置比较重要,大部分可以默认。主要有三部分内容:工程管理、代码生成、高级设置。

    这里内容我后面单独写一篇文章详细讲述。

     

    七、工具

    目前工具这里包含两部分内容:PCC(Power Consumption Calculator)功耗计算、DDR Test Suite

     

    PCC这个功能应该用的比较多,开发低功耗相关产品这个功能可以用上这个工具。

    DDR Test Suite是一个目前(19年3月)只针对于STM32MP1系列,其他MCU没有这个功能。

    工具这项功能后期详细讲述。

     

    八、说明

    1.该文档仅供个人学习使用,版权所有,禁止商用。

    2.本文由我一个人编辑并整理,难免存在一些错误。

    3.为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,该教程同步更新于微信公众号『嵌入式专栏』,关注微信公众号回复【STM32CubeMX系列教程】即可查看全系列教程。

     

    九、最后

    我的知乎: strongerHuang
    我的博客: www.strongerhuang.com

    关注微信公众号『strongerHuang』,在底部菜单中查看更多精彩内容!

    展开全文
  • 谈谈Spine动画产品中的应用

    千次阅读 2017-01-10 18:34:23
    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;...Spine动画已经广泛的应用在游戏开发或者APP中,做2D开发的,以前做动画采用的都是采用序

    笔者介绍:姜雪伟IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。

    Spine是一个2D的骨骼动画编辑器, 因为其良好的UI设计及完整的功能而被开发者追捧。Spine动画已经广泛的应用在游戏开发或者APP中,做2D开发的,以前做动画采用的都是采用序列帧播放的,如果动画播放的效果好,需要制作的序列帧图片比较多,图片的数量多会导致包体急剧增大,对于用户体验来说非常差,如何使用好的效果并且能减少包体大小,这时就显示出Spine的优势了,Spine是专门为2D动作做的编辑器,如果需要使用正版的,要购买序列号,编辑器效果如下所示:



    Spine 能将项目中的动画导出为 JSON 或二进制格式文件,它们能在 Spine 运行时库中完美的再现。 Spine 同时还可以导出 GIF 动画, PNG JPG 序列图,还有 AVI QuickTime 的视频文件。

    它开发了多款针对不同引擎和语言的库,详情查看如下网址:

    https://github.com/EsotericSoftware/spine-runtimes

    市面上比较火的引擎有Unity3D和Cocos2d-x,Spine都有对应的版本开发。

    Cocos2d-x引擎开发的游戏目前大部分都是使用Spine工具制作的,它只有三个文件组成:图集png,json文件包含骨骼信息,atlas文件包含spine图集中的各部分图片的位置信息,比如UV坐标,旋转等。

    以下面信息分别表示的是图集,json文件信息,atlas信息。




    json文件信息:

    {"skeleton":{"hash":"y8la0z0sAMdMiq3cqsdvZoRIAiQ","spine":"3.4.02","width":905,"height":1142.45,"images":""},"bones":[{"name":"root"},{"name":"fadai","parent":"root"}],"slots":[{"name":"人物参考1","bone":"root"},{"name":"fadai","bone":"fadai","attachment":"2d_C001_png01"},{"name":"2d_C001发带/2d_C001_dj01","bone":"root"},{"name":"2d_C001发带/2d_C001_dj02","bone":"root"},{"name":"2d_C001发带/2d_C001_dj2","bone":"root"},{"name":"2d_C001发带/2d_C001_dj3","bone":"fadai"},{"name":"2d_C001发带/2d_C001_dj4","bone":"fadai"}],"skins":{"default":{"fadai":{"2d_C001_png01":{"x":76.71,"y":111.84,"width":905,"height":764}}}},"animations":{"animation":{}}}
    

    atlas文件信息:

    2d_C001_dj01.png
    size: 909,768
    format: RGBA8888
    filter: Linear,Linear
    repeat: none
    2d_C001_png01
      rotate: false
      xy: 2, 2
      size: 905, 764
      orig: 905, 764
      offset: 0, 0
      index: -1
    

    这是三个文件大小总计:一百多K,非常小,Spine就是解释这个json文件和atlas文件。

    我们公司也开了一款人脸识别追踪的产品,使用上述文件的效果如下图所示:



    在类似相机软件中也有相同的应用,比如FaceU软件使用的就是序列帧,导致后期的包体会很大,其实完全可以通过Spine动画对其进行改进。笔者在CSDN学院专门做了一款类似刀塔传奇的横版游戏使用的就是Spine动画,课程观看地址:《2D动作手游-Spine骨骼动画


    展开全文
  • 最近在项目中,产品经理要求实现input框的一种特效,由于这个页面是用vue写的,所以就在github上找有vue有关这方面的组件,结果引入之后就出现了很多问题,首先这个vue项目用的ui框架是饿了吗开发的Mint UI,里面...

    最近在项目中,产品经理要求实现input框的一种特效,由于这个页面是用vue写的,所以就在github上找有vue有关这方面的组件,结果引入之后就出现了很多问题,首先这个vue项目用的ui框架是饿了吗开发的Mint UI,里面没有这种效果,然后又借鉴了一下vonic这个ui框架,但是引入的时候有些不兼容。无奈之下就自己写了一下这个特效,顺便又学习了一下动画效果。
    其实最主要用到css3的动画特性是transition。那我们先介绍一下transition这个动画属性,transition的属性主要是(介绍截自w3c)

    语法 transition: property duration timing-function delay;

    **值 描述
    transition-property 规定设置过渡效果的 CSS 属性的名称。
    transition-duration 规定完成过渡效果需要多少秒或毫秒。
    transition-timing-function 规定速度效果的速度曲线。
    transition-delay 定义过渡效果何时开始。**
    好了,下面是更为详细的介绍:
    过渡属性

    【1】transition-property:

    规定应用过渡效果的 CSS 属性的名称(当指定的CSS属性改变时,过渡效果开始),其默认值为 all 。

    【2】transition-duration:

    规定完成过渡效果需要的时间(单位为 s 或 ms),其默认值为 0s ,意味着如果不指定这个属性,将不会呈现过渡效果。

    【3】transition-timing-function:

    规定过渡效果的时间曲线。

    默认 ease :慢速开始,中间变快,慢速结束;相当于 cubic-bezier(0.25, 0.1, 0.25, 1)。

    可选 liner:匀速运动;相当于 cubic-bezier(0, 0, 1, 1)。

    可选 ease-in:慢速开始;相当于 cubic-bezier(0.42, 0, 1, 1)。

    可选 ease-out:慢速结束;相当于 cubic-bezier(0, 0, 0.58, 1)

    可选 ease-in-out:慢速开始,慢速结束;相当于 cubic-bezier(0.42, 0, 0.58, 1)

    可选 cubic-bezier(n, n, n, n):在 bezier 函数中自定义 0 ~ 1 之间的数值。

    贝塞尔时间曲线详解。。。

    【4】transition-delay:

    规定过渡效果的延迟时间,默认为 0s 。

    复合属性

    在使用复合属性定义过渡效果时,子属性之间用空格分隔。
    transition: width 2s linear;
    transition 属性可以指定多个值,当指定多个值时,中间用逗号分隔。
    transition: width 2s ease-in-out, height 2s ease-in-out;
    其中过渡过程中还有很多情况,具体请见最后的参考链接,很不错的一篇文章

    好了,以上是总结的一些基础知识,下面是具体的运用
    项目中的要求是点击input框,input框中的提示语也就是placeholder的值上移,变成
    这样的样式了,
    这是在vue项目中写的,
    html

    <div class='xuan-input'>
         <span :class="dutyAct">职位</span>
         <div class='input-label'>
            < input @keyup="input" @blur="blur('duty')" @focus="focus('duty')" v-model="duty" placeholder="职位" type=“text” maxlength=“50”/>
            <i v-if="false" @click="clearInput('duty')"></i>
         </div>
     </div>    

    css

    .xuan-input{
          padding:15px 0px;
          width:100%;
          height:75px;
          background-color:#fff;
          display: inline-block;
          position: relative;
          border-bottom: 0.5px solid #e6e6e6;
          span{
              padding-top:2px;
              font-size:16px;
              line-height:20px;
              font-weight:400;
              position:relative;
              padding:5px 0 0;
              opacity: 0;
              top: 10px;
              display: inline-block;
              color: #aea9a5;
              font-size: 14px;
              &.active{
                 transition:opacity 0.15s ease-in, top 0.2s linear;
                 opacity: 1;
                 top:0;
                 }
                 }
          ..input-label{
            display:inline-block;
            position: relative;
            width:100%;
            input{
            display:block;
            padding-top: 2px;
            pading-left:0;
            height:34px;
            color:#111;
            width: 90%;
            font-size: 16px;
            line-height:16px;
            }
            i{
            position:absolute;
            top: 7px;
            right: 0;
            z-index:3;
            width: 24px;
            height: 24px;
            background-image:url();
            background-size: 12px 12px;
            background-repeat: no-repeat;
            background-position: 5px 5px;
            }

    参考:
    深入理解 CSS 过渡 transition

    展开全文
  • Android项目源码BaseAnimation数百种动画效果集合.zip )
  • Unity 工程发布设置,主要有去除官方开始动画,窗口拖动,分辨率,图标等内容。
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    前端面试题汇总 ... 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? 21 ... 21 Quirks模式是什么?它和Standards模式有什么区别 21 div+css的布局较table布局有什么优点?...img的alt与title有何异同?...
  • 3D 项目快速查看 画廊项目的简单 3D 动画,使用户无需离开页面即可轻松发现有关您产品的更多信息。
  • 92.土地整理项目库建设 93.在线调问卷系统 94.邮件收发管理系统 95.基于P2P网络模型的即时通讯软件的研制 96.网络个人多媒体空间的设计(博客) 97.基于web的师资管理系统 98.基于.net平台的成绩管理系统设计与实现 99...
  • iOS物体与直线动画

    2021-04-04 03:21:00
    源码Demo_LineAnimation,最近在做产品里面一个界面的交互,需要对一个物体进行移动,同时有一条直线跟随物体运动增长,就像物体是拉着一根线出现,消失的时候就是线拉着物体回去的感觉,大概情况如下面的动画: ...
  • 带有CSS动画和Javascript的新产品组合 项目介绍: 这个项目的目的是展示我在编程方面的新技能以及学习更多CSS和Javascript。 :laptop: 二手技术: Java脚本 HTML5 CSS3 :light_bulb: 下一步: 翻译所有文字 ...
  • Dan Rubinstein 日期:2015 年 3 月 20 日 Coursera 数据产品类的项目分配显示美国每 10 万人死亡原因的交互式仪表板。 来自 CDC 的数据允许用户选择年份(或跨年份动画)和 COD 选择年份和死因。 将鼠标悬停在...
  • 在做无人便利小程序的项目中,某一天产品说要像某产商产品学习,给添加购物车增加抛物线小球动画。好吧,产品你最大,做! 先给大家看下效果图 分析 这种不固定起始位置的动画,自然不能用 gif 图,所以只能用原生...
  • wpf loading 动画

    2016-01-11 14:30:39
    类似时钟的加载画面,适用于产品项目开发,对了解WPF动画机制的同学会有很大帮助。
  • 抽认卡应用 实验4 应用说明 ... 初次显示时,用户应该看到一个带有圆角,阴影和动画的更好的图表 在不同尺寸的手机上使用应用程序时,用户应正确查看所有视图的布局 多项选择中的正确答案应该是随机的
  • 可以轻松管理您所有动画、特效项目,在线Web访问,从中调取任何的项目、任务、资产、镜头进行协同审查或团队沟通。 主要功能包括: 项目跟踪: 项目跟踪是每个项目的核心,玄武为您提供了很好的多项目支持,通过历程...
  • 如何做项目产品演示?

    千次阅读 2018-12-12 10:26:08
    项目产品演示不是演讲,也不是答辩,更不是培训。 尽管在很多表达和现场互动技巧上,演讲,答辩,培训和演示都有相通的地方。 演讲更侧重对某一个问题看法的陈述,主要是交换观点,允许争鸣,听众可以不同意你的...
  • WPF开发教程

    万次阅读 多人点赞 2019-07-02 23:13:20
    在 WPF 的早期设计阶段,曾有过大量关于如何界定系统的托管组件和非托管组件的争论。CLR 提供一系列的功能,可以令开发效率更高并且更加可靠(包括内存管理、错误处理和通用类型系统等),但这是需要付出代价的。 ...
  • 如今,短视频应用百花齐放,为了吸引更多流量,动画设计师和开发工程师往往为了制作夺人眼球,极具创意的动画特效花费大量心血,但最终动画需求交付上线的效率和质量,仍旧不尽如人意。问题出在哪里?主要还是工具...
  • 网页设计\网页制作常用软件大全

    千次阅读 多人点赞 2014-03-04 12:08:26
    1、CorelDraw:通过CorelDRAW9的全方面的设计及网页功能融合到现有的设计方案中,制作矢量的插图、设计及图像,出色地设计公司标志、简报、彩页、手册、产品包装、标识、网页及其它。 2、Freehand:不论是个人作品...
  • 第三章 三联与华艺联合制作的国内首部原创动画电影项目概要 12 3.1项目意义描述 13 3.2专业优势 14 3.3团队结构 16 3.4运作模式 17 3.4.1 运作模式介绍 18 3.4.2 策划 19 3.4.3 前期市场拓展 23 3.4.4 项目开发策略...
  • WPF 有趣的动画效果

    千次阅读 2014-11-20 12:20:01
     这一次我要呈上一个简单的文章,关于给你的WPF apps添加漂亮的光线动画,但是我对动画这东西可能有点入迷了。  实际上,我对动画如此的入迷,以至于我最后做了之前从未打算做的东西,就是使用一些非常有用的.NET...
  • Android 直播礼物动画实现之SVGA动画

    万次阅读 2018-09-07 16:57:30
    在最近做的直播项目中,产品要求发送礼物时,需要显示对应的礼物动画,其中几个礼物动画效果如下: 看了这几个动画效果,是挺炫酷的,妥妥的能够增加用户体验,但是实现起来可就没那么容易了。 Android中动画...
  • 他不仅仅是动效语言,同时也是一套 React 框架动效解决方案,可以帮助开发者,更容易的在项目中使用动效。 同时也提供了单项,组合动画,以及整套解决方案。过 React 标签,以简单的配置即可完成想要的动画,可以...
  • 一款APP让人赏心悦目的APP,动画是它并不可少的部分,Android提供很多原生动画方式如帧动画,属性动画等,也提供了一些组件动画套装,如Activity间的过渡跳转动画,还有Fragment,Dialog等展示动画。本文只讲Android...
  • 但是,为了使过渡生效,非常重要的一点是,Figma不能智能地匹配实际的选项卡内容,因为由于图层的匹配,智能动画会以淡入淡出的动画覆盖我们的推送动画。 To prevent this from happening we need to make sure the...
  • 开发人员档案网站 这是使用HTML / CSS,CSS动画和JavaScript创建的Web开发人员投资组合的第二个版本。 项目规格书 使用纯HTML / CSS 使用CSS动画 导航栏使用javascript

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,148
精华内容 16,859
关键字:

关于动画的产品项目