使用微信录制小视频时会有一个倒计时的横线,如下图:

这个横线怎么实现呢?

尝试了以下几种方法:

ProgressBar

自定义View + 定时器 + 重绘

TextView动态改变宽度

第一种方式使用ProgressBar,但是暂时不知道如何实现.

第二种方式在绘制过程中出现卡顿,没有更好的解决办法,相对较麻烦.

第三种方式定时器动态改变宽度仍旧会出现卡顿现象.

卡顿! 卡顿!! 卡顿!!!

用什么解决卡顿呢?

用动画,对了,使用Animator.动画来解决卡顿,动态改变View的宽度.

于是自定义了一个LineView

public class LineView extends View{

public LineView(Context context) {

super(context);

}

public LineView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public void setLayoutWidth(int width){

ViewGroup.LayoutParams params = getLayoutParams();

params.width = width;

setLayoutParams(params);

}

}

和普通的view相比,就多了一个方法:

public void setLayoutWidth(int width){

ViewGroup.LayoutParams params = getLayoutParams();

params.width = width;

setLayoutParams(params);

}

为什么加一个这个方法呢?这个方法的其实就是设置View的布局宽度,但是在ObjectAnimator里面,需要一个可以使用的属性来改变,为此我创造一个属性layoutWidth,于是动画就可以这样写:

animator = ObjectAnimator.ofInt(lineView, "layoutWidth", width, 0);

布局文件很简单,就放一个LineView,一个Button.

在这把MainActivity也贴出来,如下:

public class MainActivity extends AppCompatActivity {

private Animator animator;

private LineView lineView;

private int width;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

startAnimator();

}

});

lineView = (LineView) findViewById(R.id.lineView);

ViewTreeObserver observer = lineView.getViewTreeObserver();

observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

@Override

public boolean onPreDraw() {

width = lineView.getMeasuredWidth();

Log.d("-----", "width:" + width);

return true;

}

});

}

private void startAnimator(){

animator = ObjectAnimator.ofInt(lineView, "layoutWidth", width, 0);

animator.setDuration(6000);

animator.setInterpolator(new LinearInterpolator());

animator.start();

}

}

噔噔噔噔,大功告成,看一下效果吧:

如果有好的方法,请留言或者联系我哦.点此查看联系方式

android录制视频计时,Android实现微信录制小视频的计时动画相关推荐

  1. Android 挂逼 修炼之行---微信实现本地视频发布到朋友圈功能

    一.前言 前一篇文章已经详细介绍了如何使用Xposed框架编写第一个微信插件:摇骰子和猜拳作弊器  本文继续来介绍如何使用Xposed框架编写第二个微信插件,可以将本地小视频发布到朋友圈的功能.在这之 ...

  2. android 本地视频分享到朋友圈,Android挂逼修炼之行---微信实现本地视频发布到朋友圈功能...

    原文链接:blog.csdn.net/jiangwei0910410003一.前言 本文将介绍如何使用Xposed框架编写微信插件,可以将本地小视频发布到朋友圈的功能.在这之前我们还是要有老套路,准备 ...

  3. Android”挂逼”修炼之行—微信实现本地视频发布到朋友圈功能

    一.前言 前一篇文章已经详细介绍了如何使用Xposed框架编写第一个微信插件:摇骰子和猜拳作弊器  本文继续来介绍如何使用Xposed框架编写第二个微信插件,可以将本地小视频发布到朋友圈的功能.在这之 ...

  4. 自动保存微信的小视频

    需求: 朋友经常会在微信上分享小视频, 我突发奇想,能不能通过编写程序的方式自动保存用户发送的视频/图片/语音, 保存一份到七牛云存储上面 有了这个想法之后, 我就开始马不停蹄的探索了. 花了周六,周 ...

  5. 视频消重软件百度云 小视频修改md5

             视频消重软件百度云 小视频修改md5          微网剧每集内的场景数量.镜头切换频率非常重要,标准将在后续的文章中深度分析.                      在短视 ...

  6. 短视频搬运如何伪原创 手机小视频用去水印用改md5

             短视频搬运如何伪原创 手机小视频用去水印用改md5         视频伪原创是进行短视频引流的无论是历史,娱乐还是体育,这都是一个技巧,这是读者的相关性..        核心基础 ...

  7. 小视频APP源码开发者对小视频平台的三个忠告

    在这个短视频APP火爆的时代,小视频APP源码供不应求,无数人都想进来掺和一脚,因此无数短视频APP层出不穷,质量也是参差不齐,在此,我作为一个小视频APP开发人员,向各位想要开发短视频APP的朋友们 ...

  8. 微信无法拍摄小视频问题

    hi! what's up! 我是博主illa!今天给大家介绍一个我之前遇到的疑难问题! 问题描述:微信无法正常拍摄小视频,提示无法获取摄像头数据... 心路历程:当时看这个问题,百思不得其解,感觉不 ...

  9. vs工具箱里面没有工具怎么办_视频怎样压缩方便微信传播-小丸工具箱

    如今,微信已经成为我们日常生活中必不可少的一款手机APP,不知道你有没有遇到过这样的问题,有时候你录得或者辛苦做的小视频想发给对方的时候,微信却弹出来这样一个对话框???让人很头大! 如果是一些无关紧 ...

  10. 视频短信、企业营销小视频营销策略与方案视频制作

    本文原文来自于速码云官方网站:http://www.4006026717.com/News/NewsPaper.asp?id=329 顾名思义,视频短信就是类似发送短信模式的视频发送,也有人称之为:视 ...

最新文章

  1. 四周有阴影_四周窄边全功能TypeC 飞利浦256P1FR评测
  2. BUUCTF--[VN2020 公开赛]拉胯的三条命令
  3. Matlab命令集--常用字符串函数
  4. CUBA平台–新的Java企业应用程序框架
  5. iOS原生CIFilter创建二维码
  6. ubuntu开机时网络图标不见了且不能上网
  7. 2016集训测试赛(二十六)Problem A: bar
  8. xtarbackup 安装
  9. 定义空列表元素类型_python数据类型是什么
  10. Xilinx FPGA开发板
  11. bzoj 2435: [Noi2011]道路修建(DFS)
  12. 使用spring ioc基于纯xml配置模拟crud
  13. MATLAB神经网络工具箱的使用——Neural Net Fitting app
  14. 最新杭州地铁开通时间表
  15. 在Kali操作系统上使用metasploit
  16. Android中ButterKnife的使用
  17. VMware View for iPad,上座率最高的iPad免费软件
  18. php tree view,VB.Net树视图(TreeView)
  19. android手机能用ios吗,安卓手机真的可以刷苹果iOS系统吗?
  20. 大脑的信息获取特点与记忆模式

热门文章

  1. 深度:分析了279家海外老年行业创新创业公司,看到了老年行业创新趋势与重点机会!
  2. 更改electron-log的保存路径
  3. 从数据备份保护到完整生命周期管理平台,爱数全新发布 AnyBackup Family 8
  4. Prolog 列表练习 2
  5. gdfgdgdfgdf
  6. Qt QWindowsBackingStore::flush: GetDC failed (句柄无效)
  7. 树莓派4b ros镜像 网盘_【树莓派4B 遇到红警OPENRA】誓要夺回树莓派霸王枪排名第一位
  8. 关于container_of的理解
  9. html5卷轴动画制作,使用纯CSS3构建的3D卷轴动画特效
  10. Avast SafePrice |比较、交易