刚开始看到效果的时候感觉相当炫酷,翻看完别的之后感觉还是不错!今天有幸分享:

我们想达到这种效果需明白用什么来播放视频以及视频的资源该放到哪里?

第一我们通过使用自定义videoView来使视频充满屏幕,自定义一个类继承VideoView重写三个构造方法和onMeasure()方法来测量宽高。如下代码:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);//我们重新计算高度
    int width = getDefaultSize(0, widthMeasureSpec);int height = getDefaultSize(0, heightMeasureSpec);setMeasuredDimension(width, height);
}

如果我们想滑动视频的切换我们就需要用ViewPager来形成导航,在布局中我们书写如下代码:注意我们应该使用相对布局Relativelauyout。让小圆点放在我们的视频之上!

 <android.support.v4.view.ViewPager
     android:id="@+id/vp"
     android:layout_width="match_parent"
     android:layout_height="match_parent"></android.support.v4.view.ViewPager>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:id="@+id/lin"
    android:gravity="center"
    android:orientation="horizontal"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="100dp"
    >
</LinearLayout>准备视频资源放到res/raw文件下,raw需要我们自己去创建。
"android.resource://"+ getPackageName()+"/"+R.raw.guide_1
这种方式来取出视频所存放的资源,同时添加进集合
List<Uri> list=new ArrayList<>();
list.add(Uri.parse("android.resource://"+ getPackageName()+"/"+R.raw.guide_1));
list.add(Uri.parse("android.resource://"+ getPackageName()+"/"+R.raw.guide_2));
list.add(Uri.parse("android.resource://"+ getPackageName()+"/"+R.raw.guide_3));
创建我们的viewpager的适配器来播放视频
在适配器中书写如下代码进行播放:
@Override
public Object instantiateItem(ViewGroup container, int position) {
//创建我们直接定义的VideoView对象
final ViewMy my=new ViewMy(MainActivity.this);
//给其添加路径
my.setVideoURI(list.get(position));
//启动播放
my.start();
// 通过监听来让其进行无限播放
my.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {@Override
        public void onCompletion(MediaPlayer mediaPlayer) {my.start();}});container.addView(my);return my;
}
添加小圆的代码如下就不一一解释了,望我的分享能够帮助到大家!  天生爱分享
private void initData() {
动态生成小圆点
if(list!=null){for (int i=0;i<list.size();i++){View view=new View(this);view.setBackgroundResource(R.drawable.shape);LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(10,10);params.leftMargin=10;ll.addView(view,params);view.setTag(i);}View view = ll.getChildAt(0);view.setEnabled(false);}}
vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Override
    public void onPageSelected(int position) {
根据滑动来确定圆点的位置:
int childCount = ll.getChildCount();if(position==list.size()-1){bt.setVisibility(View.VISIBLE);}else{bt.setVisibility(View.GONE);}for (int i=0;i<childCount;i++){View view = ll.getChildAt(i);view.setEnabled(i==position?false:true);}}@Override
    public void onPageScrollStateChanged(int state) {}
});
小圆点在drawble文件下
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_bai" android:state_enabled="true"></item>
<item android:drawable="@drawable/shape_haung" android:state_enabled="false"></item>
</selector>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<solid android:color="@android:color/white"
    ></solid><size android:width="10px" android:height="10px"></size>
</shape>

APP导航使用短视频来播放相关推荐

  1. 微信小程序实现 短视频无限播放效果(类似快手小程序,抖音app的短视频滑动)

    实现原理 利用小程序内置组件 swiper+video 来制定逻辑的方向 实现方式 设定swiepr-item数量为4,也就是在swiper里面同时展示4个video,避免过多导致页面卡顿例: (假设 ...

  2. 运营版uniapp多商户商城小程序+H5+APP+商家入驻短视频社区种草直播阶梯拼团

    运营版uniapp多商户商城小程序+H5+APP+商家入驻短视频社区种草直播阶梯拼团 前后端全套源码, 支持二次开发,代码无加密! 独立商家后台 用于店铺商品管理订单管理发货管理等 多类经营模式 多商 ...

  3. 9月27日云栖精选夜读:阿里云首推免费人脸识别SDK 让每个APP轻松拥有短视频AR特效...

    摘要: 早在今年五月,阿里云已经推出了短视频解决方案.近日,阿里云再次率先颠覆行业,在业内首推免费的人脸识别SDK,结合其原有的短视频能力,大大降低了人脸识别+AR特效+短视频的入行门槛. 早在今年五 ...

  4. 深度分析自媒体短视频运营播放少,涨粉难的原因

    深度分析自媒体短视频运营播放少,涨粉难的原因 大家好,我是@我赢助手短视频运营,专注于自媒体短视频去水印.去重和文案提取运营! 自媒体是我们最常见的一种变现方式,我们每天都在通过互联网分享自己的观点, ...

  5. 9月27日云栖精选夜读:阿里云首推免费人脸识别SDK 让每个APP轻松拥有短视频AR特效

    想不想知道是什么 早在今年五月,阿里云已经推出了短视频解决方案.近日,阿里云再次率先颠覆行业,在业内首推免费的人脸识别SDK,结合其原有的短视频能力,大大降低了人脸识别+AR特效+短视频的入行门槛. ...

  6. (H5+安卓+ios)直播app系统源码,直播商城带货源码,方维直播app系统,直播短视频源码

    商品介绍 (H5+安卓+ios)直播app系统源码,直播商城带货源码,方维直播app系统,直播短视频源码,本系统有三个版本:带商城直播系统,带H5直播系统,和一般的直播短视频系统,默认带H5版本系统 ...

  7. 苹果发布App“一年之最”:快手短视频广东播放最多 山东原创第一

    12月30日,苹果App Store发布了<App里的一年之最>.App Store分别从旅行.社交.摄影等方面,选择了2019年一些包括美团.快手.知乎.腾讯视频.爱奇艺等各领域最具代表 ...

  8. iOS纯Autolayout实现微信朋友圈和通讯录另附App启动页短视频效果

    2017/8/24更新 由于10.0以上的版本对于autolayout的布局有点变化,因此这里做一下修复 如果按照之前的操作,约束就会严重冲突,虽然不会影响对应的效果,但是看起来很不爽 1.首先更新下 ...

  9. 短视频APP开发:短视频特效SDK功能火爆来袭!

    为什么短视频这么火呢?因为它符合了用户碎片化时间的需求,既娱乐了大众,又不会浪费用户太多时间. 短视频APP开发以互联网技术为核心,在原有的基础上不断进行创新,进而拥有多种强大的拍摄功能,让用户可以快 ...

最新文章

  1. 第九天:基础文件管理
  2. python opencv 如何检测模糊图像?自动判断模糊程度 cv2.Laplacian().var()
  3. 跟着大彬读源码 - Redis 6 - 对象和数据类型(下)
  4. D - Yet Another Problem On a Subsequence CodeForces - 1000D (DP,组合数学)
  5. 关于FCN的数据集着色说明
  6. PostgreSQL查询当前执行中SQL的执行计划——pg_show_plans
  7. c++byte数组和文件的相互转换_5分钟系列之Java类文件结构(三、字节码指令简介)...
  8. JUnit5 @Disabled测试示例
  9. localStorage的跨与实现方案
  10. Mybatis-第N篇配置log4j1、log4j2打印执行的sql语句
  11. 汇编语言程序设计 实验7 循环程序设计
  12. boobooke播布客
  13. PHP navicat数据搭建,navicat怎么建表
  14. vue 前端显示图片加token_Vue 页面权限控制和登陆验证
  15. Thread多线程-(最容易被问到的面试题)
  16. Auto.js Pro 调起APP并跳转至指定页面
  17. 《算法通识16讲》学习笔记
  18. Java爬虫 爬取某招聘网站招聘信息
  19. 腾讯WeTest:为用户开新篇,七周年全球惠享巨献
  20. 从国土空间规划到智慧城市

热门文章

  1. Chatbot-架构
  2. 《连接数据库的天龙八部》
  3. DQN训练atari游戏:No module named ‘atari_py‘
  4. Neo4j CQL(附springboot集成neo4j)
  5. docker保存和载入镜像
  6. linux重启网卡失败--Failed to start LSB: Bring up/down networking
  7. mysql alter database_MySQL修改数据库:ALTER DATABASE用法简介
  8. 关于android手机外接键盘的问题
  9. awk单引号和双引号区别注意
  10. 什么是跨境电商3.0时代-跨境知道