MovieFragment
package com.meetdilse.store.ui.fragment;
import android.content.Intent;
import android.graphics.Rect;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.VideoView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.meetdilse.store.R;
import com.meetdilse.store.base.BaseFragment;
import com.meetdilse.store.base.OkHttp;
import com.meetdilse.store.data.DiscoverMovie;
import com.meetdilse.store.photoview.TestImageLoader;
import com.meetdilse.store.photoview.UserViewInfo;
import com.meetdilse.store.ui.activity.VideoPlayerDetailedActivity;
import com.meetdilse.store.ui.adapter.DiscoverMovieAdpter;
import com.previewlibrary.GPreviewBuilder;
import com.previewlibrary.ZoomMediaLoader;
import com.previewlibrary.loader.VideoClickListener;
import com.scwang.smart.refresh.layout.api.RefreshLayout;
import java.util.ArrayList;
import java.util.List;
public class MovieFragment extends BaseFragment {
private View mView;
private GridView mGridView;
private GridView mGrid;
private DiscoverMovieAdpter mDiscoverMovieAdapter;
private int mPage;
private int mVideoId;
private String mAvatar;
private List<UserViewInfo> mThumbViewInfoList;
VideoView imageView;
List<DiscoverMovie> data;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_movie, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ZoomMediaLoader.getInstance().init(new TestImageLoader());
mThumbViewInfoList = new ArrayList<UserViewInfo>();
mGridView = view.findViewById(R.id.gv_movie);
imageView = view.findViewById(R.id.iv_person_vedio);
mGrid = mGridView;
mDiscoverMovieAdapter = new DiscoverMovieAdpter(getActivity());
mGrid.setAdapter(mDiscoverMovieAdapter);
OkHttp.create(this).getHotVideoList(1).enqueue((call, httpRes) -> {
Log.v("getHotVideoList", httpRes.toString());
if (httpRes.isSuccessful()) {
data = httpRes.dataFromList(DiscoverMovie.class);
mDiscoverMovieAdapter.addAll(data);
for (DiscoverMovie datum : data) {
mVideoId = datum.getUid();
mAvatar = datum.getUinfo().getAvatar();
mThumbViewInfoList.add(new UserViewInfo(datum.getHref()));
Log.v("mVideoId", String.valueOf(mVideoId));
}
}
});
mGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getActivity(), VideoPlayerDetailedActivity.class);//创建intent,准备跳转
intent.putExtra("video",data.get(i).getHref());//放值进去
startActivity(intent);//跳转
}
});
OkHttp.create(this).buyPhoto(mVideoId).enqueue((call, httpRes) -> {
Log.v("buyvideo", httpRes.toString());
});
RefreshLayout refreshLayout = view.findViewById(R.id.refreshLayout);
refreshLayout.setOnRefreshListener(this::onRefresh);
refreshLayout.setOnLoadMoreListener(this::onLoadMore);
}
private void onRefresh(@NonNull RefreshLayout refreshLayout) {
mPage = 1;
OkHttp.create().getHotVideoList(mPage).enqueue((call, httpRes) -> {
Log.v("getHotVideoList", httpRes.toString());
if (httpRes.isSuccessful()) {
List<DiscoverMovie> data = httpRes.dataFromList(DiscoverMovie.class);
mDiscoverMovieAdapter.addAll(data);
for (DiscoverMovie datum : data) {
mThumbViewInfoList.add(new UserViewInfo(datum.getHref()));
}
}
refreshLayout.finishRefresh();
});
}
private void onLoadMore(@NonNull RefreshLayout refreshlayout) {
mPage++;
OkHttp.create().getHotVideoList(mPage).enqueue((call, httpRes) -> {
Log.v("getHotVideoList", httpRes.toString());
if (httpRes.isSuccessful()) {
List<DiscoverMovie> data = httpRes.dataFromList(DiscoverMovie.class);
for (DiscoverMovie datum : data) {
mThumbViewInfoList.add(new UserViewInfo(datum.getHref()));
}
if (data.size() == 0) {
refreshlayout.finishLoadMoreWithNoMoreData();
} else {
mDiscoverMovieAdapter.addAll(data);
}
refreshlayout.finishLoadMore();
}
});
}
private void computeBoundsBackward(int firstCompletelyVisiblePos) {
for (int i = firstCompletelyVisiblePos; i < mThumbViewInfoList.size(); i++) {
View itemView = mGrid.getChildAt(i - firstCompletelyVisiblePos);
Rect bounds = new Rect();
if (itemView != null) {
//闇€瑕佹樉绀鸿繃搴︽帶浠?
ImageView thumbView = (ImageView) itemView.findViewById(R.id.iv_al);
//鎷垮埌鍦ㄦ帶浠跺睆骞曞彲瑙佷腑鎺т欢鏄剧ず涓虹煩褰ect淇℃伅
thumbView.getGlobalVisibleRect(bounds);
}
mThumbViewInfoList.get(i).setBounds(bounds);
}
}
}
看下面代码
Intent intent = new Intent(getActivity(), VideoPlayerDetailedActivity.class);//创建intent,准备跳转
intent.putExtra("video",data.get(i).getHref());//放值进去
startActivity(intent);//跳转
VideoPlayerDetailedActivity
package com.meetdilse.store.ui.activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.core.app.ActivityCompat;
import com.meetdilse.store.R;
import com.meetdilse.store.base.BaseActivity;
import com.meetdilse.store.widget.media.IRenderView;
import com.meetdilse.store.widget.media.IjkVideoView;
import chuangyuan.ycj.videolibrary.video.ExoUserPlayer;
import chuangyuan.ycj.videolibrary.video.VideoPlayerManager;
import chuangyuan.ycj.videolibrary.widget.VideoPlayerView;
public class VideoPlayerDetailedActivity extends BaseActivity {
private ExoUserPlayer exoPlayerManager;
private IjkVideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video_layout);
videoView = findViewById(R.id.iv_person_vedio);
Intent intent =getIntent();
String videoUri = intent.getStringExtra("video");
videoView.setAspectRatio(IRenderView.AR_ASPECT_FIT_PARENT);
videoView.setVideoURI(Uri.parse(videoUri));
videoView.start();
}
}
看下面代码是接受值的
Intent intent =getIntent();
String videoUri = intent.getStringExtra("video");