提交 bc2a9852 编写于 作者: S shuyu

1.5.0 增加了全屏布局和普通布局的兼容支持

上级 25c14ff8
......@@ -2,17 +2,21 @@ package com.example.gsyvideoplayer.video;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageView;
import com.example.gsyvideoplayer.R;
import com.shuyu.gsyvideoplayer.video.CustomGSYVideoPlayer;
import moe.codeest.enviews.ENPlayView;
/**
* Created by shuyu on 2016/12/23.
* CustomGSYVideoPlayer是试验中,建议使用的时候使用StandardGSYVideoPlayer
*/
public class LandLayoutVideo extends SampleVideo {
public class LandLayoutVideo extends CustomGSYVideoPlayer {
/**
* 1.5开始加入,必须重载
* 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/
public LandLayoutVideo(Context context, Boolean fullFlag) {
super(context, fullFlag);
......@@ -26,6 +30,8 @@ public class LandLayoutVideo extends SampleVideo {
super(context, attrs);
}
//这个必须配置最上面的构造才能生效
@Override
public int getLayoutId() {
if (mIfCurrentIsFullscreen) {
......@@ -34,4 +40,21 @@ public class LandLayoutVideo extends SampleVideo {
return R.layout.sample_video;
}
@Override
protected void updateStartImage() {
if (mIfCurrentIsFullscreen) {
ImageView imageView = (ImageView) mStartButton;
if (mCurrentState == CURRENT_STATE_PLAYING) {
imageView.setImageResource(R.drawable.video_click_pause_selector);
} else if (mCurrentState == CURRENT_STATE_ERROR) {
imageView.setImageResource(R.drawable.video_click_play_selector);
} else {
imageView.setImageResource(R.drawable.video_click_play_selector);
}
} else {
super.updateStartImage();
}
}
}
......@@ -47,7 +47,7 @@ public class SampleVideo extends StandardGSYVideoPlayer {
private int mSourcePosition = 0;
/**
* 1.5开始加入,必须重载
* 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/
public SampleVideo(Context context, Boolean fullFlag) {
super(context, fullFlag);
......
......@@ -35,17 +35,18 @@
<LinearLayout
android:id="@+id/layout_bottom"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:background="#99000000"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="invisible">
<moe.codeest.enviews.ENPlayView
<ImageView
android:id="@+id/start"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/video_click_play_selector"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical"
......
......@@ -133,7 +133,7 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
public abstract void startPlayLogic();
/**
* 1.5开始加入,必须重载
* 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/
public GSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag);
......
......@@ -33,7 +33,7 @@ public class CustomGSYVideoPlayer extends StandardGSYVideoPlayer {
private int mPreProgress = -2;
/**
* 1.5开始加入,必须重载
* 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/
public CustomGSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag);
......
......@@ -129,7 +129,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
private Handler mHandler = new Handler();
/**
* 1.5开始加入,必须重载
* 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/
public GSYBaseVideoPlayer(Context context, Boolean fullFlag) {
super(context);
......@@ -293,9 +293,26 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
saveLocationStatus(context, statusBar, actionBar);
boolean hadNewConstructor = true;
try {
GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class, Boolean.class);
} catch (Exception e) {
hadNewConstructor = false;
}
try {
Constructor<GSYBaseVideoPlayer> constructor = (Constructor<GSYBaseVideoPlayer>) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class, Boolean.class);
final GSYBaseVideoPlayer gsyVideoPlayer = constructor.newInstance(getContext(), true);
//通过被重载的不同构造器来选择
Constructor<GSYBaseVideoPlayer> constructor;
final GSYBaseVideoPlayer gsyVideoPlayer;
if (!hadNewConstructor) {
constructor = (Constructor<GSYBaseVideoPlayer>) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class);
gsyVideoPlayer = constructor.newInstance(getContext());
} else {
constructor = (Constructor<GSYBaseVideoPlayer>) GSYBaseVideoPlayer.this.getClass().getConstructor(Context.class, Boolean.class);
gsyVideoPlayer = constructor.newInstance(getContext(), true);
}
gsyVideoPlayer.setId(FULLSCREEN_ID);
gsyVideoPlayer.setIfCurrentIsFullscreen(true);
gsyVideoPlayer.setVideoAllCallBack(mVideoAllCallBack);
......
......@@ -20,7 +20,7 @@ public class ListGSYVideoPlayer extends StandardGSYVideoPlayer {
protected int mPlayPosition;
/**
* 1.5开始加入,必须重载
* 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/
public ListGSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag);
......
......@@ -51,7 +51,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
protected ProgressBar mBottomProgressBar;
private ENDownloadView mLoadingProgressBar;
private View mLoadingProgressBar;
protected TextView mTitleTextView; //title
......@@ -103,7 +103,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
}
/**
* 1.5开始加入,必须重载
* 1.5.0开始加入,如果需要不同布局区分功能,需要重载
*/
public StandardGSYVideoPlayer(Context context, Boolean fullFlag) {
super(context, fullFlag);
......@@ -125,7 +125,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mThumbImageViewLayout = (RelativeLayout) findViewById(R.id.thumb);
mLockScreen = (ImageView) findViewById(R.id.lock_screen);
mLoadingProgressBar = (ENDownloadView) findViewById(R.id.loading);
mLoadingProgressBar = findViewById(R.id.loading);
mThumbImageViewLayout.setVisibility(GONE);
mThumbImageViewLayout.setOnClickListener(this);
......@@ -420,7 +420,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.VISIBLE);
mCoverImageView.setVisibility(View.VISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
......@@ -434,7 +436,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.INVISIBLE);
mLoadingProgressBar.setVisibility(View.VISIBLE);
mLoadingProgressBar.start();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).start();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.VISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
......@@ -458,7 +462,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
......@@ -478,7 +484,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE);
//mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
......@@ -500,7 +508,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.INVISIBLE);
mLoadingProgressBar.setVisibility(View.VISIBLE);
mLoadingProgressBar.start();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).start();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
......@@ -513,7 +523,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.INVISIBLE);
mLoadingProgressBar.setVisibility(View.VISIBLE);
mLoadingProgressBar.start();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).start();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.VISIBLE);
......@@ -527,7 +539,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.INVISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
......@@ -540,7 +554,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.VISIBLE);
mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.VISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
......@@ -554,7 +570,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.VISIBLE);
mCoverImageView.setVisibility(View.INVISIBLE);
mBottomProgressBar.setVisibility(View.VISIBLE);
......@@ -568,7 +586,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mBottomContainer.setVisibility(View.INVISIBLE);
mStartButton.setVisibility(View.VISIBLE);
mLoadingProgressBar.setVisibility(View.INVISIBLE);
mLoadingProgressBar.reset();
if (mLoadingProgressBar instanceof ENDownloadView) {
((ENDownloadView)mLoadingProgressBar).reset();
}
mThumbImageViewLayout.setVisibility(View.INVISIBLE);
mCoverImageView.setVisibility(View.VISIBLE);
mBottomProgressBar.setVisibility(View.INVISIBLE);
......@@ -576,7 +596,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
updateStartImage();
}
private void updateStartImage() {
protected void updateStartImage() {
ENPlayView enPlayView = (ENPlayView) mStartButton;
enPlayView.setDuration(500);
if (mCurrentState == CURRENT_STATE_PLAYING) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册