当前位置: 首页 > news >正文

android 实现qq动画,Android实现仿QQ登录界面背景动画效果

登录QQ的时候,我们会看到在登录界面的背景不是静态的,而是一段动画效果,刚开始觉得蛮好奇的,现在我们也来实现一下这种效果,实现起来还是挺简单的。

实现步骤:

1、自定义CustomVideoView类继承VideoView

2、实现 xml 布局文件

3、将视频文件放入raw目录

4、代码实现动画效果

5、静态效果图展示

实现过程:

1、自定义CustomVideoView类继承VideoView

package com.showly.bmobdemo.utils;

import android.content.Context;

import android.media.MediaPlayer;

import android.util.AttributeSet;

import android.view.KeyEvent;

import android.widget.VideoView;

/**

* Created by Administrator

*/

public class CustomVideoView extends VideoView {

public CustomVideoView(Context context) {

super(context);

}

public CustomVideoView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public CustomVideoView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

//我们重新计算高度

int width = getDefaultSize(0, widthMeasureSpec);

int height = getDefaultSize(0, heightMeasureSpec);

setMeasuredDimension(width, height);

}

@Override

public void setOnPreparedListener(MediaPlayer.OnPreparedListener l) {

super.setOnPreparedListener(l);

}

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

return super.onKeyDown(keyCode, event);

}

}

2、实现xml布局文件

android:id="@+id/videoview"

android:layout_width="match_parent"

android:layout_height="match_parent" />

3、将视频文件放入raw目录

25935c65d9f1aa2173981c5de42c75bc.png

4、代码实现动画效果

//找VideoView控件

customVideoView = (CustomVideoView)findViewById(R.id.videoview);

//加载视频文件

customVideoView.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.sport));

//播放

customVideoView.start();

//循环播放

customVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override

public void onCompletion(MediaPlayer mediaPlayer) {

customVideoView.start();

}

});

5、静态效果图展示

注:效果是视频动画,这里只截了一帧

b33b7c41b2cf6caeaad9b600b38acff3.png

到这里就完成了,源码:公众号回复 "仿QQ登录背景动画效果"

以下是个人公众号(longxuanzhigu),之后发布的文章会同步到该公众号,方便交流学习 Android 知识及分享个人爱好文章:

相关文章:

  • “磁碟机”病毒详尽分析报告
  • android自动无限轮播,Android安卓比较完美的无限自动轮播
  • 端点安全:为何只有检测率远远不够
  • android 添加json动画,Lottie 站在巨人的肩膀上实现 Android 酷炫动画效果
  • android 找不到布局id,为什么给layout加上id,ButterKnife就找不到资源了?
  • 安装BizTalk Server 2006出现BizTalk架构编辑器同类型化DataSet设计器冲突
  • android 路由表参数,Android点我达路由DRouter框架设计与解析
  • WEB2.0下的门户网站建设
  • android https 证书过期变更,使用自定义证书的Android https连接
  • android7彩蛋oppo,OPPO ColorOS 7来了!没想到重磅消息却是“彩蛋”Reno3系列?
  • 利用CodeSmith为SQL Server CE生成项目代码
  • android隐藏微信好友,如何使用微信隐藏的恢复小技巧?微信好友恢复!
  • 梦里方知此身背
  • android指纹登录demo,Android指纹认证Demo源码
  • assicdoc 转换html,Swagger+spring boot 转换为html,PDF文件等
  • 自己简单写的 事件订阅机制
  • [nginx文档翻译系列] 控制nginx
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • JAVA多线程机制解析-volatilesynchronized
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Next.js之基础概念(二)
  • python 装饰器(一)
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • uva 10370 Above Average
  • vue-router 实现分析
  • vue总结
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 翻译--Thinking in React
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 小试R空间处理新库sf
  • const的用法,特别是用在函数前面与后面的区别
  • 回归生活:清理微信公众号
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​ArcGIS Pro 如何批量删除字段
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (70min)字节暑假实习二面(已挂)
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (vue)页面文件上传获取:action地址
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)计算机毕业设计大学生兼职系统
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • .naturalWidth 和naturalHeight属性,
  • .Net IOC框架入门之一 Unity
  • .NET Micro Framework初体验(二)
  • .NET 中让 Task 支持带超时的异步等待
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • /boot 内存空间不够
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @RequestBody详解:用于获取请求体中的Json格式参数