diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ArticleItemVideoView.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ArticleItemVideoView.kt index 6daedbc515..e0c5a0b8b8 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ArticleItemVideoView.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ArticleItemVideoView.kt @@ -1,16 +1,14 @@ package com.gh.gamecenter.forum.home import android.app.Activity -import android.app.Application import android.content.Context -import android.os.Bundle -import android.os.Handler import android.util.AttributeSet import android.view.Surface import android.view.View import android.widget.ImageView -import android.widget.LinearLayout +import android.widget.SeekBar import android.widget.TextView +import androidx.core.content.ContextCompat import com.facebook.drawee.view.SimpleDraweeView import com.gh.common.constant.Constants import com.gh.common.util.* @@ -18,6 +16,7 @@ import com.gh.gamecenter.R import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.video.detail.CustomManager import com.lightgame.utils.Utils +import com.shuyu.gsyvideoplayer.utils.CommonUtil import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer import com.shuyu.gsyvideoplayer.video.base.GSYVideoView import com.shuyu.gsyvideoplayer.video.base.GSYVideoViewBridge @@ -26,41 +25,40 @@ import java.util.* class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : StandardGSYVideoPlayer(context, attrs) { -// private var mMuteCallback: MuteCallback -// private var mVolumeObserver: VolumeObserver private var mVideoEntity: ForumVideoEntity? = null private var mMuteDisposable: Disposable? = null + private var mIsAutoPlay = false var uuid = UUID.randomUUID().toString() var thumbImage: SimpleDraweeView = findViewById(R.id.thumbImage) var durationTv: TextView = findViewById(R.id.durationTv) - var completeContainer: LinearLayout = findViewById(R.id.completeContainer) - var replayIv: ImageView = findViewById(R.id.replayIv) + var completeContainer: View = findViewById(R.id.completeContainer) var replayTv: TextView = findViewById(R.id.replayTv) - var shareIv: ImageView = findViewById(R.id.shareIv) var shareTv: TextView = findViewById(R.id.shareTv) var volume: ImageView = findViewById(R.id.volume) + var remainingTv: TextView = findViewById(R.id.remainingTv) + var back: ImageView = findViewById(R.id.back) override fun getLayoutId(): Int { return R.layout.layout_article_item_video } init { + SPUtils.setBoolean(getMuteKey(), SPUtils.getBoolean(Constants.SP_VIDEO_PLAY_MUTE, true)) + post { volume.setOnClickListener { toggleMute() } } -// mMuteCallback = object : MuteCallback { -// override fun onMute(isMute: Boolean) { -// if (isMute) { -// mute() -// } else { -// unMute() -// } -// } -// } -// -// mVolumeObserver = VolumeObserver(context, Handler(), mMuteCallback) + if (mIfCurrentIsFullscreen) { + showBackBtn() + } else { + hideBackBtn() + } + + setBackFromFullScreenListener { + clearFullscreenLayout() + } } override fun getGSYVideoManager(): GSYVideoViewBridge { @@ -68,15 +66,17 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At return CustomManager.getCustomManager(getKey()) } - override fun startPlayLogic() { - super.startPlayLogic() - val topVideoVoiceStatus = SPUtils.getBoolean(Constants.SP_VIDEO_PLAY_MUTE, true) - if (topVideoVoiceStatus) { - violenceUpdateMuteStatus() - } + fun startPlayLogic(isAutoPlay: Boolean) { + mIsAutoPlay = isAutoPlay + startPlayLogic() } - private fun violenceUpdateMuteStatus() { + override fun prepareVideo() { + super.prepareVideo() + violenceUpdateMuteStatus() + } + + fun violenceUpdateMuteStatus() { if (mMuteDisposable != null) { mMuteDisposable?.dispose() mMuteDisposable = null @@ -86,13 +86,13 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At mMuteDisposable?.dispose() mMuteDisposable = null } - mute() + updateMuteStatus() } } // 不需要弹弹窗,直接播放 override fun showWifiDialog() { - startPlayLogic() + startPlayLogic(false) //val trafficVideo = PreferenceManager.getDefaultSharedPreferences(context).getBoolean(SettingsFragment.TRAFFIC_VIDEO_SP_KEY, false) //if (trafficVideo) { // 不延迟的话 isCacheFile 可能直接返回 false @@ -138,9 +138,57 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At super.onSurfaceUpdated(surface) if (mThumbImageViewLayout != null && mThumbImageViewLayout.visibility == View.VISIBLE) { mThumbImageViewLayout.visibility = View.INVISIBLE + uploadVideoStreamingPlaying("开始播放") } } + //监控播放错误 +// override fun onError(what: Int, extra: Int) { +// super.onError(what, extra) +// Utils.toast(context, "网络错误,视频播放失败") +// setViewShowState(mStartButton, View.INVISIBLE) +//// errorContainer.visibility = View.VISIBLE +// } + + override fun releaseVideos() { + uploadVideoStreamingPlaying("结束播放") + CustomManager.releaseAllVideos(getKey()) + } + + override fun onVideoPause() { + super.onVideoPause() + uploadVideoStreamingPlaying("暂停播放") + } + + // 重载以减少横竖屏切换的时间 + override fun checkoutState() { + removeCallbacks(mCheckoutTask) + postDelayed(mCheckoutTask, 300) + } + + override fun clearFullscreenLayout() { + super.clearFullscreenLayout() + updateMuteStatus() + hideBackBtn() + } + + override fun setProgressAndTime(progress: Int, secProgress: Int, currentTime: Int, totalTime: Int, forceChange: Boolean) { + super.setProgressAndTime(progress, secProgress, currentTime, totalTime, forceChange) + if (remainingTv.visibility == View.VISIBLE) { + remainingTv.text = CommonUtil.stringForTime(totalTime - currentTime) + } + } + + private fun showBackBtn() { + mTopContainer.background = ContextCompat.getDrawable(context, R.drawable.video_title_bg) + back.visibility = View.VISIBLE + } + + private fun hideBackBtn() { + mTopContainer?.setBackgroundResource(0) + back.visibility = View.GONE + } + fun updateThumb(url: String) { ImageUtils.display(thumbImage, url) } @@ -180,18 +228,6 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At super.setStateAndUi(state) if (currentState == GSYVideoView.CURRENT_STATE_PREPAREING) { setViewShowState(durationTv, View.GONE) - replayIv.setOnClickListener { - startButton.performClick() -// violenceUpdateMuteStatus() -// uploadVideoStreamingPlaying("重新播放") - } - replayTv.setOnClickListener { replayIv.performClick() } - shareIv.setOnClickListener { - share() - } - shareTv.setOnClickListener { - shareIv.performClick() - } } // if (currentState == GSYVideoView.CURRENT_STATE_PLAYING) { @@ -201,6 +237,15 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At if (currentState == GSYVideoView.CURRENT_STATE_AUTO_COMPLETE) { hideAllWidget() setViewShowState(completeContainer, View.VISIBLE) + mTopContainer.visibility = View.VISIBLE + replayTv.setOnClickListener { + startButton.performClick() + violenceUpdateMuteStatus() + uploadVideoStreamingPlaying("重新播放") + } + shareTv.setOnClickListener { + share() + } } else { setViewShowState(completeContainer, View.GONE) } @@ -208,18 +253,24 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At override fun changeUiToPlayingShow() { super.changeUiToPlayingShow() - setViewShowState(mBottomProgressBar, View.VISIBLE) + if (!mIfCurrentIsFullscreen) setViewShowState(mBottomProgressBar, View.VISIBLE) + } + + override fun changeUiToPlayingClear() { + super.changeUiToPlayingClear() + if (mIfCurrentIsFullscreen) setViewShowState(mBottomProgressBar, View.GONE) } private fun toggleMute() { if (mVideoEntity?.videoIsMuted == true) { - unMute() + unMute(true) } else { - mute() + mute(true) } } fun updateMuteStatus() { + mVideoEntity?.videoIsMuted = SPUtils.getBoolean(getMuteKey(), true) if (mVideoEntity?.videoIsMuted == true) { mute() } else { @@ -227,16 +278,35 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At } } - private fun mute() { + private fun mute(isManual: Boolean = false) { mVideoEntity?.videoIsMuted = true + SPUtils.setBoolean(getMuteKey(), true) volume.setImageResource(R.drawable.ic_article_video_volume_off) CustomManager.getCustomManager(getKey()).isNeedMute = true + if (isManual) { +// Utils.toast(context, "当前处于静音状态") + uploadVideoStreamingPlaying("点击静音") + } } - private fun unMute() { + private fun unMute(isManual: Boolean = false) { mVideoEntity?.videoIsMuted = false + SPUtils.setBoolean(getMuteKey(), false) volume.setImageResource(R.drawable.ic_article_video_volume_on) CustomManager.getCustomManager(getKey()).isNeedMute = false + if (isManual) { + uploadVideoStreamingPlaying("取消静音") + } + } + + override fun onAutoCompletion() { + super.onAutoCompletion() + uploadVideoStreamingPlaying("播放完毕") + } + + override fun onStopTrackingTouch(seekBar: SeekBar?) { + super.onStopTrackingTouch(seekBar) + uploadVideoStreamingPlaying("拖动") } private fun share() { @@ -259,47 +329,30 @@ class ArticleItemVideoView @JvmOverloads constructor(context: Context, attrs: At } override fun onCancel() { -// uploadVideoStreamingPlaying("取消分享") + uploadVideoStreamingPlaying("取消分享") } }) } } + fun uploadVideoStreamingPlaying(action: String) { -// fun observeVolume(activity: AppCompatActivity) { -// activity.contentResolver?.registerContentObserver( -// android.provider.Settings.System.CONTENT_URI, true, mVolumeObserver) -// -// activity.application?.registerActivityLifecycleCallbacks( -// object : Application.ActivityLifecycleCallbacks { -// override fun onActivityPaused(a: Activity) { -// if (activity == a) { -// activity.contentResolver?.unregisterContentObserver(mVolumeObserver) -// activity.application?.unregisterActivityLifecycleCallbacks(this) -// } -// } -// -// override fun onActivityStarted(activity: Activity) { -// } -// -// override fun onActivityDestroyed(activity: Activity) { -// } -// -// override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) { -// } -// -// override fun onActivityStopped(activity: Activity) { -// } -// -// override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { -// } -// -// override fun onActivityResumed(activity: Activity) { -// } -// }) -// } + } + + fun setFullViewStatus() { + mProgressBar.visibility = View.VISIBLE + mCurrentTimeTextView.visibility = View.VISIBLE + mTotalTimeTextView.visibility = View.VISIBLE + mBottomProgressBar.visibility = View.GONE + remainingTv.visibility = View.GONE + durationTv.visibility = View.GONE + } fun getKey(): String { return uuid } + + fun getMuteKey(): String { + return Constants.SP_VIDEO_PLAY_MUTE + uuid + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt index 9b5b7932f7..0e6e9a6209 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt @@ -1,15 +1,16 @@ package com.gh.gamecenter.forum.home +import android.app.Activity import android.text.SpannableStringBuilder import android.view.View -import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import com.gh.base.BaseActivity import com.gh.common.util.* import com.gh.gamecenter.R import com.gh.gamecenter.databinding.CommunityAnswerItemBinding import com.gh.gamecenter.entity.CommunityEntity +import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.forum.detail.ForumDetailActivity import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.qa.answer.BaseAnswerOrArticleItemViewHolder @@ -22,6 +23,8 @@ import com.gh.gamecenter.qa.questions.invite.QuestionsInviteActivity import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder +import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack +import com.shuyu.gsyvideoplayer.utils.OrientationUtils class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : BaseAnswerOrArticleItemViewHolder(binding.root) { @@ -66,7 +69,7 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B binding.imageContainer.bindData(entity, entrance, path) if (entity.type == "video") { - bindVideoData(entity) + bindVideoData(entity.transformForumVideoEntity()) } else { bindArticleVideoData(entity) } @@ -105,7 +108,7 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B binding.executePendingBindings() } - private fun bindVideoData(entity: AnswerEntity) { + private fun bindVideoData(entity: ForumVideoEntity) { binding.run { if (entity.url.isEmpty()) { horizontalVideoView.visibility = View.GONE @@ -122,6 +125,8 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B horizontalVideoView } + val orientationUtils = OrientationUtils(itemView.context as Activity, visibleView) + orientationUtils.isEnable = false GSYVideoOptionBuilder() .setIsTouchWiget(false) .setUrl(entity.url) @@ -131,14 +136,35 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B .setReleaseWhenLossAudio(true) .setLooping(false) .setShowFullAnimation(false) - .setEnlargeImageRes(R.drawable.ic_article_video_full_screen) + .setEnlargeImageRes(R.drawable.ic_game_detail_enter_full_screen) + .setShrinkImageRes(R.drawable.ic_game_detail_exit_full_screen) + .setVideoAllCallBack(object : GSYSampleCallBack() { + override fun onQuitFullscreen(url: String?, vararg objects: Any) { + orientationUtils.backToProtVideo() + visibleView.uploadVideoStreamingPlaying("退出全屏") + } + }) .build(visibleView) visibleView.run { - updateVideoData(entity.transformForumVideoEntity()) + updateVideoData(entity) updateThumb(entity.poster) updateDurationTv(TimeUtils.formatDuration(entity.length)) - updateMuteStatus() -// observeVolume(itemView.context as AppCompatActivity) + + fullscreenButton.setOnClickListener { + val horizontalVideoView = startWindowFullscreen(itemView.context, true, true) as? ArticleItemVideoView + if (horizontalVideoView == null) { + toastInInternalRelease("全屏失败,请向技术人员提供具体的操作步骤") + return@setOnClickListener + } + orientationUtils.resolveByClick() + horizontalVideoView.uuid = uuid + horizontalVideoView.updateVideoData(entity) + horizontalVideoView.updateThumb(entity.poster) + horizontalVideoView.violenceUpdateMuteStatus() + horizontalVideoView.setFullViewStatus() + uploadVideoStreamingPlaying("开始播放") + uploadVideoStreamingPlaying("点击全屏") + } } } } @@ -161,6 +187,8 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B horizontalVideoView } + val orientationUtils = OrientationUtils(itemView.context as Activity, visibleView) + orientationUtils.isEnable = false GSYVideoOptionBuilder() .setIsTouchWiget(false) .setUrl(video.url) @@ -170,14 +198,35 @@ class ForumArticleAskItemViewHolder(val binding: CommunityAnswerItemBinding) : B .setReleaseWhenLossAudio(true) .setLooping(false) .setShowFullAnimation(false) - .setEnlargeImageRes(R.drawable.ic_article_video_full_screen) + .setEnlargeImageRes(R.drawable.ic_game_detail_enter_full_screen) + .setShrinkImageRes(R.drawable.ic_game_detail_exit_full_screen) + .setVideoAllCallBack(object : GSYSampleCallBack() { + override fun onQuitFullscreen(url: String?, vararg objects: Any) { + orientationUtils.backToProtVideo() + visibleView.uploadVideoStreamingPlaying("退出全屏") + } + }) .build(visibleView) visibleView.run { updateVideoData(entity.transformForumVideoEntity()) updateThumb(video.poster) updateDurationTv(video.duration) - updateMuteStatus() -// observeVolume(itemView.context as AppCompatActivity) + + fullscreenButton.setOnClickListener { + val horizontalVideoView = startWindowFullscreen(itemView.context, true, true) as? ArticleItemVideoView + if (horizontalVideoView == null) { + toastInInternalRelease("全屏失败,请向技术人员提供具体的操作步骤") + return@setOnClickListener + } + orientationUtils.resolveByClick() + horizontalVideoView.uuid = uuid + horizontalVideoView.updateVideoData(entity.transformForumVideoEntity()) + horizontalVideoView.updateThumb(video.poster) + horizontalVideoView.violenceUpdateMuteStatus() + horizontalVideoView.setFullViewStatus() + uploadVideoStreamingPlaying("开始播放") + uploadVideoStreamingPlaying("点击全屏") + } } } } diff --git a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt index bea561c4af..d7bb13e082 100644 --- a/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt @@ -1,11 +1,11 @@ package com.gh.gamecenter.personalhome.home +import android.app.Activity import android.content.Context import android.text.SpannableStringBuilder import android.util.SparseBooleanArray import android.view.View import android.view.ViewGroup -import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.ItemViewType import com.gh.common.util.* @@ -18,10 +18,13 @@ import com.gh.gamecenter.databinding.PersonalHomeRatingBinding import com.gh.gamecenter.databinding.UserHistoryItemBinding import com.gh.gamecenter.entity.ForumVideoEntity import com.gh.gamecenter.entity.PersonalHistoryEntity +import com.gh.gamecenter.forum.home.ArticleItemVideoView import com.gh.gamecenter.gamedetail.rating.edit.RatingEditActivity import com.gh.gamecenter.personalhome.PersonalItemViewHolder import com.gh.gamecenter.qa.entity.AnswerEntity import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder +import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack +import com.shuyu.gsyvideoplayer.utils.OrientationUtils import java.util.regex.Pattern class UserHistoryAdapter(context: Context, @@ -146,6 +149,8 @@ class UserHistoryAdapter(context: Context, horizontalVideoView } + val orientationUtils = OrientationUtils(mContext as Activity, visibleView) + orientationUtils.isEnable = false GSYVideoOptionBuilder() .setIsTouchWiget(false) .setUrl(entity.url) @@ -155,14 +160,35 @@ class UserHistoryAdapter(context: Context, .setReleaseWhenLossAudio(true) .setLooping(false) .setShowFullAnimation(false) - .setEnlargeImageRes(R.drawable.ic_article_video_full_screen) + .setEnlargeImageRes(R.drawable.ic_game_detail_enter_full_screen) + .setShrinkImageRes(R.drawable.ic_game_detail_exit_full_screen) + .setVideoAllCallBack(object : GSYSampleCallBack() { + override fun onQuitFullscreen(url: String?, vararg objects: Any) { + orientationUtils.backToProtVideo() + visibleView.uploadVideoStreamingPlaying("退出全屏") + } + }) .build(visibleView) visibleView.run { updateVideoData(entity) updateThumb(entity.poster) updateDurationTv(TimeUtils.formatDuration(entity.length)) - updateMuteStatus() -// observeVolume(mContext as AppCompatActivity) + + fullscreenButton.setOnClickListener { + val horizontalVideoView = startWindowFullscreen(mContext, true, true) as? ArticleItemVideoView + if (horizontalVideoView == null) { + toastInInternalRelease("全屏失败,请向技术人员提供具体的操作步骤") + return@setOnClickListener + } + orientationUtils.resolveByClick() + horizontalVideoView.uuid = uuid + horizontalVideoView.updateVideoData(entity) + horizontalVideoView.updateThumb(entity.poster) + horizontalVideoView.violenceUpdateMuteStatus() + horizontalVideoView.setFullViewStatus() + uploadVideoStreamingPlaying("开始播放") + uploadVideoStreamingPlaying("点击全屏") + } } } } @@ -185,6 +211,8 @@ class UserHistoryAdapter(context: Context, horizontalVideoView } + val orientationUtils = OrientationUtils(mContext as Activity, visibleView) + orientationUtils.isEnable = false GSYVideoOptionBuilder() .setIsTouchWiget(false) .setUrl(video.url) @@ -194,14 +222,35 @@ class UserHistoryAdapter(context: Context, .setReleaseWhenLossAudio(true) .setLooping(false) .setShowFullAnimation(false) - .setEnlargeImageRes(R.drawable.ic_article_video_full_screen) + .setEnlargeImageRes(R.drawable.ic_game_detail_enter_full_screen) + .setShrinkImageRes(R.drawable.ic_game_detail_exit_full_screen) + .setVideoAllCallBack(object : GSYSampleCallBack() { + override fun onQuitFullscreen(url: String?, vararg objects: Any) { + orientationUtils.backToProtVideo() + visibleView.uploadVideoStreamingPlaying("退出全屏") + } + }) .build(visibleView) visibleView.run { updateVideoData(entity.transformForumVideoEntity()) updateThumb(video.poster) updateDurationTv(video.duration) - updateMuteStatus() -// observeVolume(mContext as AppCompatActivity) + + fullscreenButton.setOnClickListener { + val horizontalVideoView = startWindowFullscreen(mContext, true, true) as? ArticleItemVideoView + if (horizontalVideoView == null) { + toastInInternalRelease("全屏失败,请向技术人员提供具体的操作步骤") + return@setOnClickListener + } + orientationUtils.resolveByClick() + horizontalVideoView.uuid = uuid + horizontalVideoView.updateVideoData(entity.transformForumVideoEntity()) + horizontalVideoView.updateThumb(video.poster) + horizontalVideoView.violenceUpdateMuteStatus() + horizontalVideoView.setFullViewStatus() + uploadVideoStreamingPlaying("开始播放") + uploadVideoStreamingPlaying("点击全屏") + } } } } diff --git a/app/src/main/res/drawable-xxxhdpi/ic_article_video_replay.png b/app/src/main/res/drawable-xxxhdpi/ic_article_video_replay.png deleted file mode 100644 index 7500720b48..0000000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_article_video_replay.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_article_video_share.png b/app/src/main/res/drawable-xxxhdpi/ic_article_video_share.png deleted file mode 100644 index 926ebd464a..0000000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_article_video_share.png and /dev/null differ diff --git a/app/src/main/res/layout/layout_article_item_video.xml b/app/src/main/res/layout/layout_article_item_video.xml index 4432b9ef34..32605603bb 100644 --- a/app/src/main/res/layout/layout_article_item_video.xml +++ b/app/src/main/res/layout/layout_article_item_video.xml @@ -37,6 +37,13 @@ android:scaleType="centerCrop" /> + - - - - - + android:textSize="14sp" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toLeftOf="@+id/shareTv" /> + android:textSize="14sp" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintLeft_toRightOf="@+id/replayTv" /> + + + + + + + diff --git a/app/src/main/res/layout/piece_article_video_control.xml b/app/src/main/res/layout/piece_article_video_control.xml index a608e268a1..ec681d783d 100644 --- a/app/src/main/res/layout/piece_article_video_control.xml +++ b/app/src/main/res/layout/piece_article_video_control.xml @@ -22,12 +22,13 @@ android:id="@+id/fullscreen" android:layout_width="32dp" android:layout_height="32dp" - android:src="@drawable/ic_article_video_volume_off" + android:padding="10dp" + android:src="@drawable/ic_game_detail_enter_full_screen" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" /> + +