Animation动画之View Animation(补间动画)

Android 动画↑ 1.Android动画 Android系统的动画主要分为三大类: ①View Animation 视图动画:在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。 ②Drawable Animation (也叫Frame动画、帧动画):专门用来一个一个的显示Drawable的resources,就像放幻灯片一样。 ③Property Animation属性动画:只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object,包. 阅读详情
Animation动画之View Animation(补间动画)
效果图
Alpha淡入淡出                            Scale缩放         

Rotate旋转         Translate移动


Animation动画分类

View Animation: 视图动画在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。

Drawable Animation: 这种动画(也叫Frame动画、帧动画)其实可以划分到视图动画的类别,专门用来一个一个的显示Drawable的resources,就像放幻灯片一样。

Property Animation: 属性动画只对Android 3.0(API 11)以上版本的Android系统才有效,这种动画可以设置给任何Object,包括那些还没有渲染到屏幕上的对象。这种动画是可扩展的,可以让你自定义任何类型和属性的动画。 


一.View Animation(视图动画)使用详解

1.视图动画概述:视图动画,也叫Tween(补间)动画可以在一个视图容器内执行一系列简单变换(位置、大小、旋转、透明度)。譬如,如果你有一个TextView对象,您可以移动、旋转、缩放、透明度设置其文本,当然,如果它有一个背景图像,背景图像会随着文本变化。补间动画通过XML或Android代码定义,建议使用XML文件定义,因为它更具可读性、可重用性。如下是视图动画相关的类继承关系: 


Animation属性详解

2.代码演示详解
activity_main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.chenxiaoyang.aninmatin.MainActivity">

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="200dp"
        android:layout_height="260dp"
        android:layout_centerInParent="true"
        android:background="@drawable/cxy"/>

    <Button
        android:id="@+id/Alpha"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Alpha淡入淡出"
        android:textAllCaps="false"/>

    <Button
        android:id="@+id/Rotate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="Rotate旋转"
        android:textAllCaps="false"/>

    <Button
        android:id="@+id/Translate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="Translate移动"
        android:textAllCaps="false"/>

    <Button
        android:id="@+id/Scale"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:text="Scale缩放"
        android:textAllCaps="false"/>

</RelativeLayout>
MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private ImageView mImageView;
    private Button mButtonAlpha, mButtonScale,mButtonRotate,mButtonTranslate;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mImageView = (ImageView) findViewById(R.id.image_view);
        mButtonAlpha = (Button) findViewById(R.id.Alpha);
        mButtonAlpha.setOnClickListener(this);
        mButtonScale = (Button) findViewById(R.id.Scale);
        mButtonScale.setOnClickListener(this);
        mButtonRotate = (Button) findViewById(R.id.Rotate);
        mButtonRotate.setOnClickListener(this);
        mButtonTranslate = (Button) findViewById(R.id.Translate);
        mButtonTranslate.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.Alpha:
                //创建一个AnimationSet对象,参数为Boolean型
                //true表示使用Animation的interpolator,false则是使用自己的
                AnimationSet animationSet1=new AnimationSet(true);
                //创建一个AlphaAnimation对象,参数从完全的透明度,到完全的不透明
                AlphaAnimation alphaAnimation=new AlphaAnimation(1,0);
                //设置动画执行的时间
                alphaAnimation.setDuration(5000);
                //将alphaAnimation对象添加到AnimationSet当中
                animationSet1.addAnimation(alphaAnimation);
                //使用ImageView的startAnimation方法执行动画
                mImageView.startAnimation(animationSet1);
                break;
            case R.id.Scale:
                AnimationSet animationSet2 = new AnimationSet(true);
                //参数1:x轴的初始值
                //参数2:x轴收缩后的值
                //参数3:y轴的初始值
                //参数4:y轴收缩后的值
                //参数5:确定x轴坐标的类型
                //参数6:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴
                //参数7:确定y轴坐标的类型
                //参数8:y轴的值,0.5f表明是以自身这个控件的一半长度为x轴
                ScaleAnimation scaleAnimation = new ScaleAnimation(
                        0, 0.1f,0,0.1f,
                        Animation.RELATIVE_TO_SELF,0.5f,
                        Animation.RELATIVE_TO_SELF,0.5f);
                scaleAnimation.setDuration(1000);
                animationSet2.addAnimation(scaleAnimation);
                mImageView.startAnimation(animationSet2);

                break;
            case R.id.Rotate:
                AnimationSet animationSet3 = new AnimationSet(true);
                //参数1:从哪个旋转角度开始
                //参数2:转到什么角度
                //后4个参数用于设置围绕着旋转的圆的圆心在哪里
                //参数3:确定x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、
                //RELATIVE_TO_PARENT相对于父控件的坐标
                //参数4:x轴的值,0.5f表明是以自身这个控件的一半长度为x轴
                //参数5:确定y轴坐标的类型
                //参数6:y轴的值,0.5f表明是以自身这个控件的一半长度为x轴
                RotateAnimation rotateAnimation = new RotateAnimation(
                        0, 360,
                        Animation.RELATIVE_TO_SELF,0.5f,
                        Animation.RELATIVE_TO_SELF,0.5f);
                rotateAnimation.setDuration(5000);
                animationSet3.addAnimation(rotateAnimation);
                mImageView.startAnimation(animationSet3);
                break;
            case R.id.Translate:
                AnimationSet animationSet4 = new AnimationSet(true);
                //参数1~2:x轴的开始位置
                //参数3~4:y轴的开始位置
                //参数5~6:x轴的结束位置
                //参数7~8:x轴的结束位置
                TranslateAnimation translateAnimation=new TranslateAnimation(
                        Animation.RELATIVE_TO_SELF,1f,
                        Animation.RELATIVE_TO_SELF,0f,
                        Animation.RELATIVE_TO_SELF,1f,
                        Animation.RELATIVE_TO_SELF,0f);
                translateAnimation.setDuration(5000);
                animationSet4.addAnimation(translateAnimation);
                mImageView.startAnimation(animationSet4);
                break;
        }
    }
}

Tween Animations的通用方法

  1.setDuration(long durationMills)
  设置动画持续时间(单位:毫秒)
  2.setFillAfter(Boolean fillAfter)
  如果fillAfter的值为true,则动画执行后,控件将停留在执行结束的状态
  3.setFillBefore(Boolean fillBefore)
      如果fillBefore的值为true,则动画执行后,控件将回到动画执行之前的状态
  4.setStartOffSet(long startOffSet)
  设置动画执行之前的等待时间
  5.setRepeatCount(int repeatCount)
  设置动画重复执行的次数

在代码中使用Animations可以很方便的调试、运行,但是代码的可重用性差,重复代码多。同样可以在xml文件中配置Animations,这样做可维护性变高了,只不过不容易进行调试。

一.在xml中使用Animations步骤

       1.在res文件夹下建立一个anim文件夹;

       2.创建xml文件,并首先加入set标签,更改标签如下:

       3.在该标签当中加入rotate,alpha,scale或者translate标签;
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator">

    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:startOffset="500"
        android:toAlpha="0.0"/>
</set>
4.在代码当中使用AnimationUtils当中装载xml文件,并生成Animation对象。因为Animation是AnimationSet的子类,所以向上转型,用Animation对象接收。
Animation animation = AnimationUtils.loadAnimation(
        Animation1Activity.this, R.anim.alpha);
// 启动动画
image.startAnimation(animation);

二.具体实现

1.alpha.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator">
    <!-- fromAlpha和toAlpha是起始透明度和结束时透明度 -->
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.0"
        android:startOffset="500"
        android:duration="500"/>
</set>
2.rotate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator">
    <!--
       fromDegrees:开始的角度
       toDegrees:结束的角度,+表示是正的
       pivotX:用于设置旋转时的x轴坐标
       例
           1)当值为"50",表示使用绝对位置定位
           2)当值为"50%",表示使用相对于控件本身定位
           3)当值为"50%p",表示使用相对于控件的父控件定位
        pivotY:用于设置旋转时的y轴坐标
      -->
    <rotate
        android:duration="1000"
        android:fromDegrees="0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="+360"/>
</set>
3.scale.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator">
    <!--
                x轴的初始值
                x轴收缩后的值
                y轴的初始值
                y轴收缩后的值
                确定x轴坐标的类型
                x轴的值,0.5f表明是以自身这个控件的一半长度为x轴
                确定y轴坐标的类型
                y轴的值,0.5f表明是以自身这个控件的一半长度为x轴
    -->
    <scale
        android:duration="1000"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.0"
        android:toYScale="0.0"/>
</set>
4.translate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/accelerate_interpolator">
    <!--
         开始x轴坐标
         终止x轴坐标
         开始y轴坐标
         终止y轴坐标
    -->
    <translate
        android:duration="2000"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="100%"
        android:toYDelta="100%"/>
</set>
【嵌入式底层知识修炼】按键和LED共用IO口的分时复用扫描方法 文章目录01 - PCB原理图例程02 - 分时复用的注意项和设计2.1 - 注意项2.2 - 设计03 - 代码实现 只要我跑的速度够快,寂寞就追不上我 只要Key和Led切换速度够快,人眼就看不出来 ————小白   如果你存在按键Key和显示Led共用同一个IO时,需要分时复用的需求,则可以移植代码进行使用: 代码所占code少于0.5K 线程安全,中断安全 可移植性高,配置容易 注意:系统需要存在一个至少为1ms的时钟中断 01 - PCB原理图例程   举2个Key和Led共用IO口的 阅读详情

相关推荐

利用WI生成无线信道数据

选取DeepMIMO的一个射线追踪场景O1(Outdoor 1)Scenario,工作频率为3.5GHz。有两条街和一个十字路口的户外场景18个基站和超过一百万个用户18个基站(BSs):BS1-BS18.每个基站的高度是8米每个基站的天线阵列是isotropic天线三个统一的x-y用户网格用户的总计数量为:1184923每个用户网格中的第一个用户总是(x,y)坐标最低的用户 所有用户的高度是2m每个用户的每个天线阵列是isotropic天线定义射频追踪场景。

bingbingaidaima的博客 5601

android gone动画_Android 动画基础——视图动画(View Animation)

本篇讲android 3.0之前被广泛的动画框架——ViewAnimation。目录我将分为六部分来讲:概述Alpha透明动画Rotate旋转动画Translate位移动画Scale放缩动画最佳实践:带动画SplashScreen的实现简单总结第一部分讲讲视图动画的特点,接着的四部分讲具体的视图动画类型,再接着的一部分通过一个例子来说明视图动画的运用,最后简单总结一下。一、概述其实叫“概述”有点名...

weixin_39806808的博客 456

避坑指南:SAP CO模块维护成本控制范围的5个常见错误及解决方法

本文深入剖析了SAP CO模块中维护成本控制范围时最易犯的5个常见错误,包括货币参数配置不当、标准层次结构缺失、财政年度变式不一致、功能激活遗漏及集成参数设置错误。重点针对事务码OKKP的配置,提供了详细的排查步骤与实战解决方案,帮助顾问有效规避陷阱,确保成本核算体系稳定运行。

stone的博客 232

Android视图动画-View Animation

视图动画主要有两种:一、Tween Animation译为“补间动画”1、scale译为“规模、比例”,是对View进行特定范围的缩放2、alpha通过改变View的透明度实现View隐现的效果3、translate译为"转移",是对View进行位置的移动4、rotate译为“旋转”,是让View围绕特定的点进行旋转PS:所有View的移动、隐藏、旋转仅仅是看到的动画效果,实际View的位置/大小...

weixin_33862993的博客 234

携程机票数据爬取实战:使用 Python 获取携程网机票信息

通过本篇博客,我们详细介绍了如何使用 Python 爬取携程网的机票信息,涉及了静态网页爬取(使用 Requests 和 BeautifulSoup)和动态网页爬取(使用 Selenium)两种方法。通过获取的数据,我们不仅能够进行票价分析,还可以构建更为复杂的预测模型或趋势分析工具。爬虫技术不仅能够帮助我们收集有价值的数据,还能够为商业决策提供数据支持。在实际应用中,我们可以结合更多的分析方法,如自然语言处理、图像处理等,进一步提升数据的价值。

2201_76125261的博客 1657

GEE:本地影像上传到GEE的Assets中,并输入机器学习算法中作为特征变量

当我们在 Google Earth Engine(GEE)中应用机器学习算法时,会输入一些影像作为特征变量数据,进一步根据这些特征影像去推理未知区域的数据。但是 GEE 平台上计算特征变量的 API 函数并不是非常全面,我们希望获得更多的特征用于分类。这个时候,我们可以将本地计算的特征影像上传到 GEE 中进行后续处理。本文记录了从本地上传特征数据到 GEE 的 Assets 中的教程,用于后续在 GEE 中分类或者回归使用。本文也可作为《》一文的补充。

养乐多的博客 1730

View Animation(视图动画)

Android Developers视图动画部分翻译

swt369的博客 1285

库存管理系统项目部署方案(基于jdk17)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

程序员诚哥 6355

android的三种动画

Android的三种动画详解

weixin_39971470的博客 2218

【图像去噪】论文复现:大道至简!NAFNet的Pytorch源码复现!跑通NAFNet源码,补充PlainNet,由大到小拆解NAFNet网络结构,由小到大实现结构组合,逐行注释!

论文题目:Simple Baselines for Image Restoration —— 图像恢复的简单基线【图像去噪】论文精读:Simple Baselines for Image Restoration(NAFNet)本文以SIDD数据集为例,跑通NAFNet源码,详解NAFNet网络结构与实现。建议与KBNet和CGNet的复现文件综合查看。训练和测试代码解析见单独的BasicSR源码精读(后续会出)。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 2990

BLDC&PMSM电机控制器硬件设计工程(三)控制器驱动芯片方案

在汽车电机控制系统中,栅极驱动IC扮演着至关重要的角色。它作为主控MCU与功率开关管(MOSFET/IGBT)之间的桥梁,将微弱的PWM信号放大为足以快速、可靠驱动功率管的强信号。本文将深入解析英飞凌、TI和NXP的车规级栅极驱动方案,重点关注半桥和单侧驱动IC。1)为什么需要栅极驱动器?栅极驱动器是低压控制器和高压电路之间的缓冲电路,用于放大控制器的控制信号,从而实现功率器件更有效的导通和关断。栅极驱动器的作用总结如下:1.将控制器的低压信号转化为更高电压的驱动信号,以实现功率器件稳定导通和关断。

小幽余生不加糖 490

View补间动画Animation运行原理

先上大料: View 动画 Animation 运行原理解析 Android动画原理分析 看完以上两篇文章,基本上就可以理清补间动画的实现原理了. 基本流程如下: 1,使用View.startAnimation()开启一个动画,在这个方法里面初始化了animation,并且执行了invalidate方法,这个是进入视图绘制流程的起点. 2,一旦执行了view的invalidate,那么...

网鱼的栈 1445

RT-DETR改进前必看 - Ultralytics调参 1:1还原RT-DETR官方版本实验环境,更方便改进

的项目文件中集成了YOLOv3v5v6v8v9v10rt-detr11以及其中不同大小的模型结构,更方便我们学习和使用。的参数配置在路径下,其中中设置了模型在训练Train验证Val/Test预测Predict可视化Visualize导出Export超参数Hyperparameters、以及跟踪Tracker的相关参数。在调参过程中主要涉及训练Train和超参数Hyperparameters。下面主要介绍一下初始超参数Hyperparameters。

Limiiiing的博客 7959

Android 动画之补间动画(View Animation)

Android 中补间动画包括下面四种: 1.透明度动画 (AlphaAnimation) 2.缩放动画 (ScaleAnimation) 3.平移动画 (TranslateAnimation) 4.旋转动画 (RotateAnimation) 补间动画是专门针对View 的。只能应用于View。 具体使用 AlphaAnimation 补间动画可以使用Java代码创建也可以使用...

xujian197的博客 2003

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Animation动画(一)--View Animation之Tween Animation补间动画

又是美好的一天,今天给要介绍的是View Animation视图动画中的补间动画概述动画存放位置共同属性alpha 渐变透明动画scale 缩放动画translate 平移动画rotate 旋转动画set组合使用 在Android中动画基本分为两大类: View Animation(视图动画) Tween Animation(补间动画) Frame Animation(逐帧动画); Property Animator(属性动画); ValueAnimator ObjectAnimation;

高级开发者进阶ing... QaQ 306

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Tween Animation 补间动画 为什么没有改变view属性?

Tween Animation 补间动画 为什么没有改变view属性? Android的补间动画不会造车view属性的变化,为什么?本文看的是Android28. 开始 补间动画主要有四个:TranslateAnimation,ScaleAnimation,RotateAnimation,AlphaAnimation。就是平移,缩放,旋转和透明四种。然后加一个AnimationSet。 我们从TranslateAnimation跟进,意义是一样的。 使用 //这个就是一秒以内从0,移动1000,x值 Tra

qunimaode的博客 552

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android 动画之二 View Animation —— 补间(Tween)动画与Interpolator的介绍

在一个看脸的社会中,不论什么事物,长得好看总是能多吸引一些目光。App同样不例外,一款面相不错的App就算功能已经被轮了千百遍,依然会有人买账,理由就是看得顺眼,于是平面设计人员越来越被重视。白驹过隙,斗转星移,人们已然不满足于静态的美感,于是动态的用户体验应运而生,平面设计人员捉襟见肘,是我们程序员出马的时候了。 而前面我们已经介绍了逐帧(Frame)动画,今天我们就来介绍一下补间(Tween)

womengmengyan的博客 1280

View Animation补间动画

布局很简单,一个图片,五个监听按钮。<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools

天然呆的人生若只如初见的博客 352

Android补间动画(View Animation,Tweened Animation)

补间动画主要有4种,分别是透明,旋转,缩放和位移.这里为了方便测试,直接定义4个按钮和一个ImageView来测试4种效果 一:透明(alpha): //透明的动画 public void click1(View v){ AlphaAnimation aa=new AlphaAnimation(1.0f,0.0f); aa.setDuration(2000)

James_shu的博客 547

Android Animation 之 View Animation(补间动画)

android中补间动画可以分为四类:AlphaAnimation(透明度)、ScaleAnimation(缩放)、TranslateAnimation(位移)、RotateAnimation(旋转)。另外AnimationSet为动画的组合。

Ya-Jun 的博客 496

property animation(属性动画)、view animation(补间动画)、drawable animation(帧动画)比较

一.属性动画 属性动画相对于位补间动画说,更稳定健壮一些,属性动画不仅能够实现view的动画,更能实现非view的动画,可以说能实现anything做动画,例如颜色等。属性动画可以定义以下几个属性: 1.Duration 该属性是定义一次动画执行下来所花的时间,默认是300ms。 2.Repeat count and behavior 该属性是定义一个动画重复的次数以及怎样去实现重复,即是

jack_bear_csdn的博客 609

Android动画(View Animation之Tween Animation(补间动画))

废话不多说直接上代码 public class MainActivity extends AppCompatActivity implements View.OnClickListener { ImageView iv; @Override protected void onCreate(Bundle savedInstanceState) { super.onC

stay hungry stay foolish 381

android动画之帧动画(drawable animation)和补间动画(view animation)

帧动画 drawable animation使用比较简单,而且支持市场上所以API版本,下面简单贴下代码。帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果。 直接代码贴上 xml资源文件配置<?xml version="1.0" encoding="utf-8"?> <!-- 根标签为animation-list XML文件要放在/res/drawabl

songsongbrother的博客 1225

Android三种动画View Animation(补间动画) 、Drawable Animation(帧动画) 、Property Animation(属性动画)(下)

转载:http://blog.youkuaiyun.com/lmj623565791/article/details/38092093 上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法: ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~ 当然了属性动画还有

Levin的专栏 686

Animation动画(一)--View Animation之Tween Animation补间动画(动态代码实现)

上一篇给大家提到了通过xml来静态实现动画,今天给大家带来只需要用过java代码就可以实现相同效果的动态实现.概述:公共代码AlphaAnimation 透明动画ScaleAnimation 缩放动画TranslateAnimation 平移动画RotateAnimation 旋转动画AnimationSet 组合使用Git链接: [langyangyang](https://github.com/langyangyangzzZ/Animation_/). 概述: alpha —— AlphaAni

高级开发者进阶ing... QaQ 454

【攻克Android (22)】View/Tween Animation 视图动画(补间动画)

[b][size=large]本文围绕以下四个部分展开: [/size][/b] [b][size=large]一、概念[/size][/b] [b][size=large]二、分类[/size][/b] [b][size=large]三、创建的方式[/size][/b] [b][size=large]案例一[/size][/b] [b][size=lar...

XiangdongLee的博客 163
上一篇: 地图功能的简易实现
Android开发-CXY
博客等级 码龄10年 33粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值