App现在二维码扫描、人脸扫描的场景越来越多,扫描的动画效果实则就是平移动画:TranslateAnimation

现在我呢用TranslateAnimation实现一个人脸扫描的效果,上下来回滑动(二维码只要替换一下BG即可):
(超过5M的gif上传不了,所以只录了一个轮回的,3M多,看着貌似是卡顿,其实是帧数太少,具体应用到代码中Run起来看效果)

1.效果图:

2.Activity代码如下:

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.animation.Animation;import android.view.animation.LinearInterpolator;import android.view.animation.TranslateAnimation;import android.widget.ImageView;public class MainActivity extends AppCompatActivity {    private ImageView mIvScan;    /**     * 0:从上往下 1:从下往上     */    Animation mTop2Bottom, mBottom2Top;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mIvScan = findViewById(R.id.scan_line);        mTop2Bottom = new TranslateAnimation(TranslateAnimation.ABSOLUTE, 0f,                TranslateAnimation.ABSOLUTE, 0f, TranslateAnimation.RELATIVE_TO_PARENT, 0f,                TranslateAnimation.RELATIVE_TO_PARENT, 0.7f);        mBottom2Top = new TranslateAnimation(TranslateAnimation.ABSOLUTE, 0f,                TranslateAnimation.ABSOLUTE, 0f, TranslateAnimation.RELATIVE_TO_PARENT, 0.7f,                TranslateAnimation.RELATIVE_TO_PARENT, 0f);        mBottom2Top.setRepeatMode(Animation.RESTART);        mBottom2Top.setInterpolator(new LinearInterpolator());        mBottom2Top.setDuration(1500);        mBottom2Top.setFillEnabled(true);//使其可以填充效果从而不回到原地        mBottom2Top.setFillAfter(true);//不回到起始位置        //如果不添加setFillEnabled和setFillAfter则动画执行结束后会自动回到远点        mBottom2Top.setAnimationListener(new Animation.AnimationListener() {            @Override            public void onAnimationStart(Animation animation) {            }            @Override            public void onAnimationEnd(Animation animation) {                mIvScan.startAnimation(mTop2Bottom);            }            @Override            public void onAnimationRepeat(Animation animation) {            }        });        mTop2Bottom.setRepeatMode(Animation.RESTART);        mTop2Bottom.setInterpolator(new LinearInterpolator());        mTop2Bottom.setDuration(1500);        mTop2Bottom.setFillEnabled(true);        mTop2Bottom.setFillAfter(true);        mTop2Bottom.setAnimationListener(new Animation.AnimationListener() {            @Override            public void onAnimationStart(Animation animation) {            }            @Override            public void onAnimationEnd(Animation animation) {                mIvScan.startAnimation(mBottom2Top);            }            @Override            public void onAnimationRepeat(Animation animation) {            }        });        mIvScan.startAnimation(mTop2Bottom);    }}

3.XML文件,就主要2个控件,背景图和实现动画效果的目标ImageView:

<?xml version="1.0" encoding="utf-8"?>            

(布局预览)

Run,看效果。(有好的建议,欢迎评论,一起学习交流~^_^)

Demo下载地址:https://download.csdn.net/download/u010231454/10847735
转载请注明出处,谢谢~ ^_^:https://blog.csdn.net/u010231454/article/details/84986161

 

更多相关文章

  1. Android实现二维码扫描功能(一)-ZXing插件接入
  2. 教你快速实现Android动态模糊效果
  3. android修改TextView中部分文字的颜色来实现高亮效果
  4. 安卓实战开发之CardView的selector及GrideView的item按下状态保
  5. Delphi/C++ Builder 开发 Android(安卓)程序启动画面简单完美解
  6. Android中View绘图总结
  7. Android(安卓)Frame动画概述及示例
  8. Android(安卓)状态栏操作,你想知道的都在这里了
  9. Android实现ListView圆角效果

随机推荐

  1. Android Q正式版发布时间确定!详细介绍内
  2. Android需要复合人才
  3. Android 上如何移植live555生成库文件
  4. android总结之android初识
  5. Android UI系列
  6. android 屏幕适配
  7. Android真的很火吗?
  8. Android(Xamarin)之旅(五)
  9. Android动画设计第3弹
  10. Android基础备忘(android中的分享功能)