动画学习之WIFI图形绘制

论坛 期权论坛     
选择匿名的用户   2021-6-2 18:55   481   0
<div class="blogpost-body" id="cnblogs_post_body">
<p><span style="font-size:18pt;"><strong>Android原生动画概述:</strong></span></p>
<p>对于APP开发中涉及到的一些动画基本上都可以用Android提供的各种原生动画类来实现,所以在学习自定义动画之前首先来对原生动画进行一个基本的了解,这里不详细对每一个原生动画进行深入学习,因为重点是学会如何自定义动画,其Android支持的原生动画主要有以下三类:</p>
<p><strong>①、补间动画【<strong><a href="https://developer.android.com/guide/topics/graphics/view-animation.html">View Animation</a></strong>】:</strong></p>
<ul><li>平移动画:TranslateAnimation</li><li>旋转动画:RotateAnimation</li><li>缩放动画:ScaleAnimation</li><li>渐变动画:AlphaAnimation</li></ul>
<p><strong>②、属性动画【<strong><a href="https://developer.android.com/guide/topics/graphics/prop-animation.html">Property Animation</a></strong>】:</strong></p>
<p>这个动画在实际中用得比较多的是这两个类:ObjectAnimator和ValueAnimator,而ObjectAnimator是继承自ValueAnimator,如下:</p>
<p><img alt="" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-ad008507ff8e4417fc2592138bfd3966.png"></p>
<p>其中ValueAnimator在之前的学习中也已经用过了,它可以对值进行变化。</p>
<p>对于上面两种动画其实是有一个比较大的区别的,下面来做一个小实验来直观的感受一下两者的区别:</p>
<p>新建一个工程,先准备布局:</p>
<div class="cnblogs_code">
  <pre class="blockcode"><span style="color:#0000ff;">&lt;?</span><span style="color:#ff00ff;">xml version&#61;&#34;1.0&#34; encoding&#61;&#34;utf-8&#34;</span><span style="color:#0000ff;">?&gt;</span>
<span style="color:#0000ff;">&lt;</span><span style="color:#800000;">LinearLayout </span><span style="color:#ff0000;">xmlns:android</span><span style="color:#0000ff;">&#61;&#34;http://schemas.android.com/apk/res/android&#34;</span><span style="color:#ff0000;">
    xmlns:tools</span><span style="color:#0000ff;">&#61;&#34;http://schemas.android.com/tools&#34;</span><span style="color:#ff0000;">
    android:layout_width</span><span style="color:#0000ff;">&#61;&#34;match_parent&#34;</span><span style="color:#ff0000;">
    android:layout_height</span><span style="color:#0000ff;">&#61;&#34;match_parent&#34;</span><span style="color:#ff0000;">
    android:orientation</span><span style="color:#0000ff;">&#61;&#34;vertical&#34;</span><span style="color:#ff0000;">
    tools:context</span><span style="color:#0000ff;">&#61;&#34;com.animationdemo.test.MainActivity&#34;</span><span style="color:#0000ff;">&gt;</span>

    <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Button
        </span><span style="color:#ff0000;">android:layout_width</span><span style="color:#0000ff;">&#61;&#34;wrap_content&#34;</span><span style="color:#ff0000;">
        android:layout_height</span><span style="color:#0000ff;">&#61;&#34;wrap_content&#34;</span><span style="color:#ff0000;">
        android:onClick</span><span style="color:#0000ff;">&#61;&#34;traslate1&#34;</span><span style="color:#ff0000;">
        android:text</span><span style="color:#0000ff;">&#61;&#34;点我平移补间动画&#34;</span> <span style="color:#0000ff;">/&gt;</span>

    <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">Button
        </span><span style="color:#ff0000;">android:layout_width</span><span style="color:#0000ff;">&#61;&#34;wrap_content&#34;</span><span style="color:#ff0000;">
        android:layout_height</span><span style="color:#0000ff;">&#61;&#34;wrap_content&#34;</span><span style="color:#ff0000;">
        android:onClick</span><span style="color:#0000ff;">&#61;&#34;traslate2&#34;</span><span style="color:#ff0000;">
        android:text</span><span style="color:#0000ff;">&#61;&#34;点我平移属性动画&#34;</span> <span style="color:#0000ff;">/&gt;</span>
<span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">LinearLayout</span><span style="color:#0000ff;">&gt;</span></pre>
</div>
<p>先看一下补间动画的效果:</p>
<div class="cnblogs_code">
  <pre class="blockcode"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> MainActivity <span style="color:#0000ff;">extends</span><span style="color:#000000;"> AppCompatActivity {

    </span><span style="color:#0000ff;">private</span> <span style="color:#0000ff;">boolean</span><span style="color:#000000;"> isTranslate;

    &#64;Override
    </span><span style="color:#0000ff;">protected</span> <span style="color:#0000ff;">void</span><span style="color:#000000;"> onCreate(Bundle savedInstanceState) {
        </span><span style="color:#0000ff;">super</span><span style="color:#000000;">.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    </span><span style="color:#008000;">//</span><span style="color:#008000;">补间动画平移</span>
    <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span><span style="color:#000000;"> traslate1(View view) {
        </span><span style="color:#0000ff;">if</span> (!<span style="color:#000000;">isTranslate) {
            TranslateAnimation translateAnimation </span>
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP