APP导航使用短视频来播放
来源:互联网 发布:淘宝达人直播申请 编辑:程序博客网 时间:2024/04/25 08:54
刚开始看到效果的时候感觉相当炫酷,翻看完别的之后感觉还是不错!今天有幸分享:
我们想达到这种效果需明白用什么来播放视频以及视频的资源该放到哪里?
第一我们通过使用自定义videoView来使视频充满屏幕,自定义一个类继承VideoView重写三个构造方法和onMeasure()方法来测量宽高。如下代码:
@Overrideprotected 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的适配器来播放视频在适配器中书写如下代码进行播放:@Overridepublic 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>
阅读全文
0 0
- APP导航使用短视频来播放
- 使用videoView来播放视频
- 使用 UIWebView 来播放视频
- 使用MediaPlayer来播放视频
- gstreamer 使用命令来播放视频
- 使用mediaplayer + surfaceview来播放视频
- 使用mediaplayer + surfaceview来播放视频
- 安卓中使用VideoView来播放视频
- 在安卓中使用VideoView来播放视频
- APP视频播放
- 使用Opencv添加一个进度条来控制视频播放
- Android使用SurfaceView和TextureView来播放视频
- android仿微信录制短视频并播放
- TextureView+MediaPlayer实现在线短视频播放
- 播放器/短视频 SDK 架构设计
- 泉来视频播放代码
- 类似搜狐视频app视频列表播放
- android仿微信录制短视频并播放视频
- 小程序周边厕所
- ICMP协议之ping实现
- PLSQL 安装+配置( Oracle数据库连接工具 )
- pugixml 1.8快速入门
- Animated之基础篇-概述
- APP导航使用短视频来播放
- iOS
- 高并发网络编程之epoll详解
- win10 安全模式开机
- java 标签中图片加载不完全问题
- java中==和equals的区别
- 文件操作-打开、读写
- Android串口通信:串口读写实例
- 理解RecyclerView的RecyclerView.ItemDecoration(二)