From 52ae5fc45136c40b7ff2ff24f6784b34601bf554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= <1484288157@qq.com> Date: Fri, 20 Dec 2019 14:53:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E8=AF=A6=E6=83=85UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/DirectUtils.kt | 25 +- .../java/com/gh/gamecenter/SkipActivity.java | 22 +- .../gh/gamecenter/fragment/LoginFragment.java | 9 + .../video/detail/DetailPlayerView.kt | 35 +-- .../gamecenter/video/detail/VideoAdapter.kt | 9 +- .../detail/VideoDetailContainerFragment.kt | 34 ++- .../fragment/myconcern/MyConcernFragment.java | 14 +- .../video_detail_marquee_ad_notice.png | Bin 0 -> 679 bytes .../drawable-xxhdpi/ic_video_detail_game.png | Bin 2093 -> 2536 bytes .../res/drawable/bg_video_detail_marquee.xml | 7 + .../res/drawable/bg_video_detail_name.xml | 6 + .../res/drawable/progressbar_video_detail.xml | 4 +- .../drawable/video_detail_btn_download_up.xml | 9 + .../drawable/video_detail_seek_progress.xml | 28 +++ .../fragment_video_detail_container.xml | 64 ++++- .../layout/layout_video_detail_surface.xml | 224 ++++++++++-------- app/src/main/res/values/colors.xml | 2 + app/src/main/res/values/strings.xml | 2 +- 18 files changed, 325 insertions(+), 169 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/video_detail_marquee_ad_notice.png create mode 100644 app/src/main/res/drawable/bg_video_detail_marquee.xml create mode 100644 app/src/main/res/drawable/bg_video_detail_name.xml create mode 100644 app/src/main/res/drawable/video_detail_btn_download_up.xml create mode 100644 app/src/main/res/drawable/video_detail_seek_progress.xml diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index 7424c36a6d..673a3bb4bb 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -19,6 +19,7 @@ import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.eventbus.EBSkip import com.gh.gamecenter.fragment.MainWrapperFragment import com.gh.gamecenter.game.columncollection.detail.ColumnCollectionDetailActivity +import com.gh.gamecenter.gamedetail.GameDetailFragment import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mygame.PlayedGameActivity import com.gh.gamecenter.personalhome.UserHomeActivity @@ -199,7 +200,14 @@ object DirectUtils { */ @JvmStatic fun directToGameDetailVideoStreaming(context: Context, id: String, entrance: String? = null) { - GameDetailActivity.startGameDetailToVideoStreaming(context, id, entrance) + val bundle = Bundle() + bundle.putString(KEY_TO, GameVideoActivity::class.java.name) + bundle.putString(KEY_ENTRANCE, entrance) + bundle.putString(KEY_GAMEID, id) + bundle.putBoolean(KEY_OPEN_VIDEO_STREAMING, true) + bundle.putInt(KEY_TARGET, GameDetailFragment.INDEX_DESC) +// GameDetailActivity.startGameDetailToVideoStreaming(context, id, entrance) + jumpActivity(context, bundle) } // 跳转至用户玩过的游戏 @@ -475,7 +483,12 @@ object DirectUtils { */ @JvmStatic fun directToVideoManager(context: Context, entrance: String? = null, path: String? = "") { - context.startActivity(VideoManagerActivity.getIntent(context, entrance, path)) + val bundle = Bundle() + bundle.putString(KEY_PATH, path) + bundle.putString(KEY_TO, VideoManagerActivity::class.java.name) + bundle.putString(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + //context.startActivity(VideoManagerActivity.getIntent(context, entrance, path)) + jumpActivity(context, bundle) } /** @@ -483,6 +496,12 @@ object DirectUtils { */ @JvmStatic fun directToGameVideo(context: Context, gameId: String, entrance: String? = null, path: String? = "") { - context.startActivity(GameVideoActivity.getIntent(context, gameId, entrance, path)) + val bundle = Bundle() + bundle.putString(KEY_PATH, path) + bundle.putString(KEY_TO, GameVideoActivity::class.java.name) + bundle.putString(KEY_ENTRANCE, BaseActivity.mergeEntranceAndPath(entrance, path)) + bundle.putString(KEY_GAMEID, gameId) +// context.startActivity(GameVideoActivity.getIntent(context, gameId, entrance, path)) + jumpActivity(context, bundle) } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/SkipActivity.java b/app/src/main/java/com/gh/gamecenter/SkipActivity.java index b6f796756e..72e5614aa3 100644 --- a/app/src/main/java/com/gh/gamecenter/SkipActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SkipActivity.java @@ -12,15 +12,12 @@ import com.gh.common.util.EntranceUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.RunningUtils; import com.gh.gamecenter.entity.CommunityEntity; -import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.manager.UserManager; import com.gh.gamecenter.video.detail.VideoDetailContainerViewModel; +import com.halo.assistant.HaloApp; import com.lightgame.config.CommonDebug; import com.lightgame.utils.Utils; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; - import static com.gh.common.util.EntranceUtils.ENTRANCE_BROWSER; import static com.gh.common.util.EntranceUtils.HOST_ANSWER; import static com.gh.common.util.EntranceUtils.HOST_ARTICLE; @@ -43,7 +40,6 @@ import static com.gh.common.util.EntranceUtils.KEY_NAME; import static com.gh.common.util.EntranceUtils.KEY_PACKAGENAME; import static com.gh.common.util.EntranceUtils.KEY_PLATFORM; import static com.gh.common.util.EntranceUtils.KEY_VERSION; -import static com.gh.gamecenter.personal.PersonalFragment.LOGIN_TAG; /** * Created by LGT on 2016/11/16. @@ -106,6 +102,7 @@ public class SkipActivity extends BaseActivity { DirectUtils.directToToolbox(this, uri.getQueryParameter("gameId"), uri.getQueryParameter("toolboxUrl"), ENTRANCE_BROWSER); break; case HOST_COMMUNITY: + case HOST_VIDEO_STREAMING_HOME: Intent intent; UserManager.getInstance().setCommunityData(new CommunityEntity(id, name)); // 把切换放到 MainActivity 处理 @@ -156,17 +153,17 @@ public class SkipActivity extends BaseActivity { if (CheckLoginUtils.isLogin()) { DirectUtils.directToVideoManager(this, ENTRANCE_BROWSER, "浏览器"); } else { + HaloApp.put(HOST_UPLOAD_VIDEO,true); CheckLoginUtils.checkLogin(this, ENTRANCE_BROWSER, null); - return; } break; case HOST_VIDEO_SINGLE: break; case HOST_VIDEO_MORE: break; - case HOST_VIDEO_STREAMING_HOME: - DirectUtils.directToCommunity(this); - break; +// case HOST_VIDEO_STREAMING_HOME: +// DirectUtils.directToCommunity(this); +// break; case HOST_VIDEO_STREAMING_DESC: DirectUtils.directToGameDetailVideoStreaming(this, id, ENTRANCE_BROWSER); break; @@ -181,11 +178,4 @@ public class SkipActivity extends BaseActivity { } finish(); } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBReuse reuse) { - if (reuse.getType().equals(LOGIN_TAG)) { // 登入 - DirectUtils.directToVideoManager(this, ENTRANCE_BROWSER, "浏览器"); - } - } } diff --git a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java index ec17e5465e..ea49550dd8 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/LoginFragment.java @@ -16,6 +16,7 @@ import android.widget.EditText; import android.widget.TextView; import com.gh.base.fragment.WaitingDialogFragment; +import com.gh.common.util.DirectUtils; import com.gh.common.util.LogUtils; import com.gh.common.util.LoginHelper; import com.gh.common.util.LoginUtils; @@ -50,6 +51,9 @@ import androidx.lifecycle.ViewModelProviders; import butterknife.BindView; import butterknife.OnClick; +import static com.gh.common.util.EntranceUtils.ENTRANCE_BROWSER; +import static com.gh.common.util.EntranceUtils.HOST_UPLOAD_VIDEO; + /** * Created by khy on 14/08/17. */ @@ -261,6 +265,11 @@ public class LoginFragment extends NormalFragment implements LoginUtils.onCaptch if (TextUtils.isEmpty(UserManager.getInstance().getToken())) { mUserViewModel.retryCheckLogin(); } + Object gotoUploadVideo = HaloApp.get(HOST_UPLOAD_VIDEO, true); + if (gotoUploadVideo != null) { + DirectUtils.directToVideoManager(requireContext(), ENTRANCE_BROWSER, "浏览器"); + } + if (getActivity() != null) getActivity().finish(); } } diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt index 70200e025a..4d0ad84006 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt @@ -207,6 +207,10 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib } } } + download_btn.setOnClickListener { + MtaHelper.onEvent("视频详情", "下载游戏", "${mVideoEntity!!.title}(${mVideoEntity!!.id})") +// MtaHelper.onEvent("视频详情", "预约游戏", "${mVideoEntity!!.title}(${mVideoEntity!!.id})") + } } override fun showWifiDialog() { @@ -382,6 +386,9 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib override fun onStartTrackingTouch(seekBar: SeekBar?) { super.onStartTrackingTouch(seekBar) byStartedClick = true + if (mIfCurrentIsFullscreen) { + MtaHelper.onEvent("视频详情", "全屏播放-拖动进度条", "${mVideoEntity!!.title}(${mVideoEntity!!.id})") + } } override fun getEnlargeImageRes(): Int { @@ -392,27 +399,6 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib return R.drawable.ic_game_detail_exit_full_screen } - /*override fun startPlayLogic() { - //super.startPlayLogic() - if (mVideoAllCallBack != null) { - Debuger.printfLog("onClickStartThumb") - mVideoAllCallBack.onClickStartThumb(mOriginUrl, mTitle, this) - } - prepareVideo() - } - - override fun resolveUIState(state: Int) { - when (state) { - CURRENT_STATE_PREPAREING -> { - changeUiToPreparingShow() - } - CURRENT_STATE_PLAYING -> { - changeUiToPlayingShow() - } - else -> super.resolveUIState(state) - } - }*/ - override fun netWorkErrorLogic() { super.netWorkErrorLogic() @@ -498,8 +484,10 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib R.id.start -> { if (currentState != GSYVideoView.CURRENT_STATE_PLAYING) { MtaHelper.onEvent("视频详情", "播放", mCombinedTitleAndId) + MtaHelper.onEvent("视频详情", if (mIfCurrentIsFullscreen) "全屏播放-继续播放" else "继续播放", "${mVideoEntity!!.title}(${mVideoEntity!!.id})") } else { MtaHelper.onEvent("视频详情", "暂停", mCombinedTitleAndId) + MtaHelper.onEvent("视频详情", if (mIfCurrentIsFullscreen) "全屏播放-点击暂停" else "点击暂停", "${mVideoEntity!!.title}(${mVideoEntity!!.id})") } super.onClick(v) } @@ -544,6 +532,7 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib if (isManual) { Utils.toast(context, "当前处于静音状态") + MtaHelper.onEvent("视频详情", if (mIfCurrentIsFullscreen) "全屏播放-点击静音" else "点击静音", "${mVideoEntity!!.title}(${mVideoEntity!!.id})") } } @@ -551,7 +540,9 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib mVideoEntity?.videoIsMuted = false volume.setImageResource(R.drawable.ic_game_detail_volume_on) (gsyVideoManager as CustomManager).isNeedMute = false - + if (isManual) { + MtaHelper.onEvent("视频详情", if (mIfCurrentIsFullscreen) "全屏播放-解除静音" else "解除静音", "${mVideoEntity!!.title}(${mVideoEntity!!.id})") + } } fun getVideoAllCallBack(): VideoAllCallBack = mVideoAllCallBack diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt index 9ae85f7a16..63af35b4ce 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt @@ -5,6 +5,7 @@ import android.content.Context import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.gh.common.constant.Constants +import com.gh.common.util.MtaHelper import com.gh.download.cache.CacheManager import com.gh.download.cache.CacheObserver import com.gh.gamecenter.entity.VideoEntity @@ -53,6 +54,7 @@ class VideoAdapter(val mContext: Context, val mViewModel: VideoDetailContainerVi override fun onQuitFullscreen(url: String?, vararg objects: Any) { mOrientationUtils.backToProtVideo() videoView.hideAllButton(false) + MtaHelper.onEvent("视频详情", "全屏播放-退出全屏", "${videoList[position].title}(${videoList[position].id})") } }) .build(videoView) @@ -62,6 +64,9 @@ class VideoAdapter(val mContext: Context, val mViewModel: VideoDetailContainerVi videoView.updateThumb(videoList[position].getThumb()) videoView.updateMuteStatus() videoView.fullscreenButton.setOnClickListener { + if (mOrientationUtils.isLand == 0) { + MtaHelper.onEvent("视频详情", "进入全屏", "${videoList[position].title}(${videoList[position].id})") + } videoView.hideAllButton(true) mOrientationUtils.resolveByClick() val fullVideoPlayer = videoView.startWindowFullscreen(mContext, true, true) as DetailPlayerView @@ -74,10 +79,10 @@ class VideoAdapter(val mContext: Context, val mViewModel: VideoDetailContainerVi videoView.isNeedShowWifiTip = HaloApp.get(Constants.SHOULD_SHOW_VIDEO_MOBILE_WARNING, false) as Boolean? ?: false if (position == mViewModel.startPosition) { - if (position + 2 <= videoList.size - 1) { + if (position + 2 <= videoList.size - 1) {//预加载视频 CacheManager.getInstance().download(videoList[position + 1].url, object : CacheObserver() {}) CacheManager.getInstance().download(videoList[position + 2].url, object : CacheObserver() {}) - } else if (position + 1 <= videoList.size - 1) {//预加载视频 + } else if (position + 1 <= videoList.size - 1) { CacheManager.getInstance().download(videoList[position + 1].url, object : CacheObserver() {}) } videoView.startButton.performClick() diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt index 85f23c44a7..7cf9b2b9cf 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt @@ -70,7 +70,8 @@ class VideoDetailContainerFragment : NormalFragment(), OnBackPressedListener { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - + marquee_ad_title.isSelected = true + initListener() if (mLocation == VideoDetailContainerViewModel.Location.USER_UPLOADED_VIDEO.value) { titleTv.text = "" } else { @@ -147,17 +148,17 @@ class VideoDetailContainerFragment : NormalFragment(), OnBackPressedListener { val pos = mViewPagerLayoutManager.findFirstCompletelyVisibleItemPosition() val videoView = findFirstCompletelyVisibleVideoViewByPosition() - if (pos + 2 <= mAdapter.videoList.size - 1) { + if (pos + 2 <= mAdapter.videoList.size - 1) {//预加载视频 CacheManager.getInstance().download(mAdapter.videoList[pos + 1].url, object : CacheObserver() {}) CacheManager.getInstance().download(mAdapter.videoList[pos + 2].url, object : CacheObserver() {}) - } else if (pos + 1 <= mAdapter.videoList.size - 1) {//预加载视频 + } else if (pos + 1 <= mAdapter.videoList.size - 1) { CacheManager.getInstance().download(mAdapter.videoList[pos + 1].url, object : CacheObserver() {}) } if (videoView?.isInPlayingState != true) { CacheManager.getInstance().cancel(mAdapter.videoList[pos].url) videoView?.startPlayLogic() mBaseHandler.postDelayed({ - videoView?.startPlayLogic() + videoView?.updateMuteStatus() }, 500) } mViewModel.addHistoryRecord(mAdapter.videoList[pos]) @@ -197,15 +198,19 @@ class VideoDetailContainerFragment : NormalFragment(), OnBackPressedListener { } } - /*override fun onResume() { - super.onResume() - val videoView = findFirstCompletelyVisibleVideoViewByPosition() - if (videoView?.currentState == GSYVideoView.CURRENT_STATE_PAUSE || videoView?.isInPlayingState != true) { - val seekOnStart = videoView?.currentPositionWhenPlaying - videoView?.seekOnStart = seekOnStart?.toLong() ?: 0 - videoView?.startPlayLogic() + private fun initListener() { + marquee_ad.setOnClickListener { + val pos = mViewPagerLayoutManager.findFirstCompletelyVisibleItemPosition() + val videoEntity = mAdapter.videoList[pos] + MtaHelper.onEvent("视频详情", "视频广告", "${videoEntity.title}(${videoEntity.id})") } - }*/ + icon_ad.setOnClickListener { + val pos = mViewPagerLayoutManager.findFirstCompletelyVisibleItemPosition() + val videoEntity = mAdapter.videoList[pos] + MtaHelper.onEvent("视频详情", "视频广告", "${videoEntity.title}(${videoEntity.id})") + } + + } override fun onResume() { super.onResume() @@ -341,7 +346,10 @@ class VideoDetailContainerFragment : NormalFragment(), OnBackPressedListener { } override fun onHandleBackPressed(): Boolean { - return mAdapter.onBackPressed(findFirstCompletelyVisibleVideoViewByPosition()) + if (::mAdapter.isInitialized) { + return mAdapter.onBackPressed(findFirstCompletelyVisibleVideoViewByPosition()) + } + return false } } \ No newline at end of file diff --git a/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernFragment.java b/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernFragment.java index 980cd670f7..6f7feb5231 100644 --- a/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/myconcern/MyConcernFragment.java @@ -6,10 +6,6 @@ import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - import com.gh.base.OnRequestCallBackListener; import com.gh.common.util.CheckLoginUtils; import com.gh.common.view.Concern_LinearLayout; @@ -24,6 +20,10 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.List; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import butterknife.BindView; import butterknife.OnClick; @@ -73,6 +73,12 @@ public class MyConcernFragment extends NormalFragment implements View.OnClickLis } + @Override + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + setNavigationTitle("我的关注"); + } + @Override public void loadDone() { // 关注推荐 回调 mConcernTitleRl.setVisibility(View.VISIBLE); diff --git a/app/src/main/res/drawable-hdpi/video_detail_marquee_ad_notice.png b/app/src/main/res/drawable-hdpi/video_detail_marquee_ad_notice.png new file mode 100644 index 0000000000000000000000000000000000000000..6576e6ef954cb5e2299000455b61a5565869a6e0 GIT binary patch literal 679 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 + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_video_detail_name.xml b/app/src/main/res/drawable/bg_video_detail_name.xml new file mode 100644 index 0000000000..092eb87944 --- /dev/null +++ b/app/src/main/res/drawable/bg_video_detail_name.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/progressbar_video_detail.xml b/app/src/main/res/drawable/progressbar_video_detail.xml index 2252830111..3421065519 100644 --- a/app/src/main/res/drawable/progressbar_video_detail.xml +++ b/app/src/main/res/drawable/progressbar_video_detail.xml @@ -2,7 +2,7 @@ - + @@ -10,7 +10,7 @@ - + diff --git a/app/src/main/res/drawable/video_detail_btn_download_up.xml b/app/src/main/res/drawable/video_detail_btn_download_up.xml new file mode 100644 index 0000000000..50bb3f6612 --- /dev/null +++ b/app/src/main/res/drawable/video_detail_btn_download_up.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/video_detail_seek_progress.xml b/app/src/main/res/drawable/video_detail_seek_progress.xml new file mode 100644 index 0000000000..65951d6eac --- /dev/null +++ b/app/src/main/res/drawable/video_detail_seek_progress.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_video_detail_container.xml b/app/src/main/res/layout/fragment_video_detail_container.xml index f03adba7c1..660f1d8bd4 100644 --- a/app/src/main/res/layout/fragment_video_detail_container.xml +++ b/app/src/main/res/layout/fragment_video_detail_container.xml @@ -1,6 +1,7 @@ @@ -9,21 +10,26 @@ android:id="@+id/smartRefreshLayout" android:layout_width="match_parent" android:layout_height="match_parent" - app:srlEnableRefresh="false" - app:srlEnableLoadMore="true"> + app:srlEnableLoadMore="true" + app:srlEnableRefresh="false"> + + android:layout_height="wrap_content" /> + + + app:srlTextSizeTitle="12sp" /> + @@ -68,4 +74,54 @@ android:textStyle="bold" /> + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_video_detail_surface.xml b/app/src/main/res/layout/layout_video_detail_surface.xml index 90690a7ddc..e482c670df 100644 --- a/app/src/main/res/layout/layout_video_detail_surface.xml +++ b/app/src/main/res/layout/layout_video_detail_surface.xml @@ -26,42 +26,12 @@ - - - - - - - - - + android:layout_gravity="bottom" + android:background="@drawable/bg_video_detail_name" + android:orientation="horizontal" + android:paddingLeft="10dp" + android:paddingTop="5dp" + android:paddingRight="10dp" + android:paddingBottom="5dp"> + + + + + + + + + + + + + + + - + + android:layout_marginBottom="12dp"> + android:layout_marginRight="20dp"> - - + app:roundAsCircle="true" + app:roundingBorderColor="@color/white" + app:roundingBorderWidth="1dp" /> - - + android:layout_marginLeft="8dp" + android:layout_toRightOf="@+id/userIconIv" + android:gravity="center" + android:orientation="vertical"> + android:textSize="14sp" + android:textStyle="bold" + tools:text="赞布罗塔" /> + + + + + + + @@ -208,7 +227,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" - android:textColor="@color/white" + android:textColor="@color/text_999999" android:textSize="12sp" tools:text="1.0W" /> @@ -218,13 +237,13 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" - android:layout_marginLeft="20dp" + android:layout_marginLeft="32dp" android:gravity="center" android:orientation="vertical"> @@ -245,7 +264,7 @@ android:id="@+id/layout_bottom" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="#99000000" + android:layout_marginTop="25dp" android:gravity="center_vertical" android:orientation="horizontal" android:visibility="gone" @@ -266,9 +285,10 @@ android:id="@+id/current" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="7dp" + android:layout_marginLeft="8dp" android:text="00:00" - android:textColor="#ffffff" /> + android:textColor="@color/white" + android:textSize="12sp" /> + android:textColor="@color/white" + android:textSize="12sp" /> + android:padding="5dp" + android:src="@drawable/ic_game_detail_enter_full_screen" /> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 21f3609615..397edd608b 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -140,5 +140,7 @@ #FF9B06 #D8D8D8 #FAFAFA + #3BABFF + #2461FF \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c14adad86a..905715b0d0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -114,7 +114,7 @@ 最新 关注 存号箱 - 游戏库 + 游戏 资讯 首页 我的光环