詳解android 視頻圖片混合輪播實(shí)現(xiàn)
循環(huán)添加視頻view 圖片view
for (int i = 0 ;i<beansArrayList.size();i++){ if (beansArrayList.get(i).getType()==1){ videoPlayer = new NiceVideoPlayer(this); controller = new TxVideoPlayerController(this); videoPlayer.setController(controller); videoPlayer.setUp(beansArrayList.get(i).getVideo(),null); videoPlayer.continueFromLastPosition(false); videoPlayer.setOnStart(new NiceVideoPlayer.onStart() { @Override public void start() { bannerView.startLoop(false); } }); controller.setOnRestartPause(new TxVideoPlayerController.onRestartPause() { @Override public void onStart(boolean start) { bannerView.startLoop(start); } @Override public void onRestart() { } }); GlideLoading.setImage(this,beansArrayList.get(i).getStrUrl(),controller.imageView()); viewList.add(videoPlayer); }else { ImageView img = new ImageView(this); img.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); img.setScaleType(ImageView.ScaleType.FIT_XY); img.setAdjustViewBounds(true); final int finalI = i; img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ArrayList<String> imgUrl = new ArrayList<>(); int position = 0; for (int j = 0 ;j<beansArrayList.size();j++){ if (beansArrayList.get(j).getStrUrl().equals(beansArrayList.get(finalI).getStrUrl())){ position = j ; } imgUrl.add(beansArrayList.get(j).getStrUrl()); } PreviewPhone.previewPhone(ActivityProductDetails.this,imgUrl,position,v); } }); GlideLoading.setImage(this,beansArrayList.get(i).getStrUrl(),img); viewList.add(img); } } bannerView.startLoop(true); bannerView.setOnPageSelected(new BannerView.onPageSelected() { @Override public void onNext() { if (videoPlayer != null){ if (videoPlayer.isPlaying()){ bannerView.startLoop(true); videoPlayer.pause(); } } } @Override public void onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: bannerView.startLoop(false); break; case MotionEvent.ACTION_MOVE: bannerView.startLoop(false); break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: if (videoPlayer.isPlaying()){ bannerView.startLoop(false); }else { bannerView.startLoop(true); } break; } } });
xml應(yīng)用
<com.zym.common.view.banner.BannerView android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="200dp"> </com.zym.common.view.banner.BannerView>
輪播適配器
public class BannerAdapter extends PagerAdapter { private List<View> viewList; private int size; private final int cacheCount = 3; public BannerAdapter(List<View> viewList) { this.viewList = viewList; size = viewList.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { if (viewList.size() > cacheCount){ container.removeView(viewList.get(position%size)); } } @Override public Object instantiateItem(ViewGroup container, int position) { ViewGroup parent = (ViewGroup) viewList.get(position%size).getParent(); if (parent != null) { parent.removeView(viewList.get(position%size)); } container.addView(viewList.get(position%size)); return viewList.get(position%size); } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; }
以上所述是小編給大家介紹的android 視頻圖片混合輪播實(shí)現(xiàn)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Android實(shí)現(xiàn)圖片輪播效果的兩種方法
- Android實(shí)現(xiàn)圖片輪播效果
- Android實(shí)現(xiàn)Banner界面廣告圖片循環(huán)輪播(包括實(shí)現(xiàn)手動(dòng)滑動(dòng)循環(huán))
- Android使用ViewPager加載圖片和輪播視頻
- Android實(shí)現(xiàn)炫酷輪播圖效果
- Android實(shí)現(xiàn)圖片自動(dòng)輪播并且支持手勢左右無限滑動(dòng)
- Android實(shí)現(xiàn)輪播圖片展示效果
- Android自動(dòng)播放Banner圖片輪播效果
- Android實(shí)現(xiàn)圖片文字輪播特效
- Android實(shí)現(xiàn)視圖輪播效果
相關(guān)文章
Android 調(diào)用設(shè)備已有的相機(jī)應(yīng)用詳情
這篇文章主要介紹了Android 調(diào)用設(shè)備已有的相機(jī)應(yīng)用,如果我們只是需要讓用戶能夠拍攝照片,則可以直接請求已有相機(jī)應(yīng)用拍攝照片并將照片返回給我們,下面我們一起來看看這些功能,需要的朋友可以參考一下2021-10-10SimpleCommand實(shí)現(xiàn)上傳文件或視頻功能(四)
這篇文章主要介紹了SimpleCommand實(shí)現(xiàn)上傳文件或視頻功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10Android開發(fā)之計(jì)算器GridLayout布局實(shí)現(xiàn)方法示例
這篇文章主要介紹了Android開發(fā)之計(jì)算器GridLayout布局實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Android計(jì)算器界面布局及表達(dá)式計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2019-03-03如何使用Flutter實(shí)現(xiàn)58同城中的加載動(dòng)畫詳解
這篇文章主要給大家介紹了關(guān)于如何使用Flutter實(shí)現(xiàn)58同城中加載動(dòng)畫詳?shù)南嚓P(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10五分鐘教你Android-Kotlin項(xiàng)目編寫
本篇文章主要介紹了五分鐘教你Android-Kotlin項(xiàng)目編寫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06Android Tween動(dòng)畫之RotateAnimation實(shí)現(xiàn)圖片不停旋轉(zhuǎn)效果實(shí)例介紹
Android中如何使用rotate實(shí)現(xiàn)圖片不停旋轉(zhuǎn)的效果,下面與大家共同分析下Tween動(dòng)畫的rotate實(shí)現(xiàn)旋轉(zhuǎn)效果,感興趣的朋友可以參考下哈2013-05-05