詳解android 視頻圖片混合輪播實現(xiàn)
更新時間:2019年05月18日 10:34:07 作者:EMOGUIHUN2
這篇文章主要介紹了android 視頻圖片混合輪播實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
循環(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 視頻圖片混合輪播實現(xiàn)詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Android中g(shù)oogle Zxing實現(xiàn)二維碼與條形碼掃描
這篇文章主要介紹了Android中g(shù)oogle Zxing實現(xiàn)二維碼與條形碼掃描的相關(guān)資料,需要的朋友可以參考下2017-05-05
Flutter?Widget?之FocusableActionDetector使用詳解
這篇文章主要為大家介紹了Flutter?Widget?之FocusableActionDetector使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
解決 INSTALL FAILED CONFLICTING PROVIDER的問題方法
這篇文章主要介紹了解決 INSTALL FAILED CONFLICTING PROVIDER的問題方法的相關(guān)資料,需要的朋友可以參考下2017-02-02
Android viewpager無限輪播獲取網(wǎng)絡(luò)圖片功能
這篇文章主要為大家詳細(xì)介紹了Android viewpager無限輪播獲取網(wǎng)絡(luò)圖片功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
Matrix的set,pre,post調(diào)用順序詳解
下面小編就為大家?guī)硪黄狹atrix的set,pre,post調(diào)用順序詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04

