Commit 0c598e9b authored by jyx's avatar jyx

更新页面样式

parent 0db7d983
...@@ -235,6 +235,18 @@ dependencies { ...@@ -235,6 +235,18 @@ dependencies {
// umeng 接入 // umeng 接入
// 穿山甲聚合 接入【穿山甲、快手】 // 穿山甲聚合 接入【穿山甲、快手】
// 穿山甲
implementation ("com.pangle.cn:pangrowth-sdk:3.7.0.1") {
exclude group: 'com.pangle.cn', module: 'pangrowth-game-sdk'
exclude group: 'com.pangle.cn', module: 'pangrowth-novel-sdk'
exclude group: 'com.pangle.cn', module: 'pangrowth-luckycat-sdk'
exclude group: 'com.pangle.cn', module: 'partner-luckycat-api-sdk'
exclude group: 'com.pangle.cn', module: 'pangrowth-reward-sdk'
exclude group: 'com.pangle.cn', module: 'partner-live-sdk'
exclude group: 'com.tencent.mm.opensdk', module: 'wechat-sdk-android'
}
testImplementation 'junit:junit:4.13.2' testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
......
...@@ -7,6 +7,12 @@ ...@@ -7,6 +7,12 @@
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!-- 穿山甲 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application <application
android:name=".MintsApplication" android:name=".MintsApplication"
android:allowBackup="false" android:allowBackup="false"
...@@ -122,6 +128,10 @@ ...@@ -122,6 +128,10 @@
android:name=".video.VideoActivity" android:name=".video.VideoActivity"
android:exported="false" android:exported="false"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".video.DramaApiDetailActivity"
android:exported="false"
android:screenOrientation="portrait" />
<service <service
android:name=".ui.service.UpdateService" android:name=".ui.service.UpdateService"
...@@ -140,6 +150,13 @@ ...@@ -140,6 +150,13 @@
android:exported="true" android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" /> android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 短剧SDK -->
<provider
android:name="com.bytedance.sdk.dp.act.DPProvider"
android:authorities="${applicationId}.BDDPProvider"
android:exported="false" />
<!-- 自有下载 --> <!-- 自有下载 -->
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
......
{
"init": {
"site_id": "5175152",
"app_id": "193842",
"partner": "pangle_193842",
"secure_key": "11146c60bf023251701462c31a44a28b"
},
"feed": {
"news_list_ad_code_id": "946175237",
"news_first_ad_code_id": "946175238",
"news_second_ad_code_id": "946175242",
"video_first_ad_code_id": "",
"video_second_ad_code_id": "946175251",
"related_ad_code_id": "946175239",
"news_draw_ad_code_id": "946175243",
"news_draw_native_ad_code_id": "946175244",
"news_interstitial_code_id": "947027583"
},
"small_video": {
"draw_ad_code_id": "946175245",
"draw_native_ad_code_id": "946175248",
"grid_ad_code_id": "946175241",
"grid_draw_ad_code_id": "946175246",
"grid_draw_native_ad_code_id": "946175250",
"video_card_ad_code_id": "946175247",
"video_card_draw_ad_code_id": "946175240",
"video_card_draw_native_ad_code_id": "946175249",
"interstitial_note_ad_code_id": "946506704",
"draw_fullscreen_interstitial_ad_code_id":"947490273",
"draw_interstitial_ad_code_id":"947490116",
"staggered_grid_ad_code_id": "946506705",
"staggered_grid_draw_ad_code_id": "946175245",
"staggered_grid_draw_native_ad_code_id": "946175248",
"draw_banner_code_id": "947490413",
"drama_rewarded_ad_code_id": "951008975",
"drama_rewarded_ad_code_id_02": "951011822",
"drama_draw_ad_code_id": "952225157"
},
"novel": {
"banner_ad_code_id": "946508521",
"exciting_ad_code_id": "946176105",
"interstitial_code_id": "946508522",
"mid_ad_code_id": "946176107",
"pre_ad_code_id": "946176106",
"status": 1
},
"live": {
"live_card_ad_code_id": "946192110",
"live_preview_draw_ad_code_id": "947474066",
"live_preview_draw_native_ad_code_id": "947474068"
}
}
...@@ -18,6 +18,7 @@ import com.lzf.easyfloat.anim.AppFloatDefaultAnimator ...@@ -18,6 +18,7 @@ import com.lzf.easyfloat.anim.AppFloatDefaultAnimator
import com.lzf.easyfloat.anim.DefaultAnimator import com.lzf.easyfloat.anim.DefaultAnimator
import com.lzf.easyfloat.enums.SidePattern import com.lzf.easyfloat.enums.SidePattern
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.ad.AdManager
import com.mints.wisdomclean.common.AppConfig import com.mints.wisdomclean.common.AppConfig
import com.mints.wisdomclean.common.Constant import com.mints.wisdomclean.common.Constant
import com.mints.wisdomclean.ui.activitys.base.BaseActivity import com.mints.wisdomclean.ui.activitys.base.BaseActivity
...@@ -26,6 +27,7 @@ import com.mints.wisdomclean.ui.fragment.MyFragment ...@@ -26,6 +27,7 @@ import com.mints.wisdomclean.ui.fragment.MyFragment
import com.mints.wisdomclean.ui.fragment.RecommendFragment import com.mints.wisdomclean.ui.fragment.RecommendFragment
import com.mints.wisdomclean.ui.widgets.DialogListener import com.mints.wisdomclean.ui.widgets.DialogListener
import com.mints.wisdomclean.ui.widgets.PhoneDialog import com.mints.wisdomclean.ui.widgets.PhoneDialog
import kotlinx.android.synthetic.main.activity_main.*
/** /**
* 描述:首页 * 描述:首页
...@@ -79,6 +81,9 @@ class MainActivity : BaseActivity(), View.OnClickListener { ...@@ -79,6 +81,9 @@ class MainActivity : BaseActivity(), View.OnClickListener {
tabIvLoan!!.isSelected = true tabIvLoan!!.isSelected = true
} }
AdManager.instance.preLoadAd(this)
initEditView()
// initEasyFloat() // initEasyFloat()
} }
...@@ -267,4 +272,25 @@ class MainActivity : BaseActivity(), View.OnClickListener { ...@@ -267,4 +272,25 @@ class MainActivity : BaseActivity(), View.OnClickListener {
}) })
phoneDialog!!.show() phoneDialog!!.show()
} }
private fun initEditView() {
tv_full.setOnClickListener {
recommendFragment?.apply {
(this as RecommendFragment).fullChoice()
}
}
tv_delete.setOnClickListener {
recommendFragment?.apply {
(this as RecommendFragment).delete()
}
}
}
fun showEdit(isEdit: Boolean) {
if (isEdit) {
ll_edit.visibility = View.VISIBLE
} else {
ll_edit.visibility = View.GONE
}
}
} }
\ No newline at end of file
package com.mints.wisdomclean.ui.adapter package com.mints.wisdomclean.ui.adapter
import android.app.Activity import android.app.Activity
import android.view.View
import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
...@@ -13,7 +14,21 @@ import com.mints.wisdomclean.R ...@@ -13,7 +14,21 @@ import com.mints.wisdomclean.R
class FollowAdapter(var activity: Activity) : class FollowAdapter(var activity: Activity) :
BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_follow) { BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_follow) {
private var showEdit = false
override fun convert(holder: BaseViewHolder, item: String) { override fun convert(holder: BaseViewHolder, item: String) {
holder.getView<View>(R.id.fm_mask).visibility = if (showEdit) View.VISIBLE else View.GONE
}
// 设置编辑状态
fun setEditStyle(showEdit: Boolean) {
this.showEdit = showEdit
notifyDataSetChanged()
}
// 全选
fun fullChoice() {
} }
} }
\ No newline at end of file
...@@ -2,7 +2,6 @@ package com.mints.wisdomclean.ui.adapter ...@@ -2,7 +2,6 @@ package com.mints.wisdomclean.ui.adapter
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import com.mints.wisdomclean.ui.fragment.FollowVideoFragment
/** /**
* @author Assen * @author Assen
......
...@@ -50,4 +50,8 @@ class FollowVideoFragment : BaseFragment() { ...@@ -50,4 +50,8 @@ class FollowVideoFragment : BaseFragment() {
rv_follow.adapter = followAdapter rv_follow.adapter = followAdapter
} }
fun getAdapter(): FollowAdapter {
return followAdapter
}
} }
\ No newline at end of file
package com.mints.wisdomclean.ui.fragment package com.mints.wisdomclean.ui.fragment
import android.app.Dialog import android.app.Dialog
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.util.Log
import android.view.View import android.view.View
import android.widget.Toast
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import com.bytedance.sdk.dp.DPDrama
import com.bytedance.sdk.dp.DPDramaDetailConfig
import com.bytedance.sdk.dp.DPSdk
import com.bytedance.sdk.dp.IDPWidgetFactory
import com.daimajia.androidanimations.library.YoYo import com.daimajia.androidanimations.library.YoYo
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.common.AppConfig import com.mints.wisdomclean.common.AppConfig
...@@ -17,10 +24,23 @@ import com.mints.wisdomclean.ui.activitys.* ...@@ -17,10 +24,23 @@ import com.mints.wisdomclean.ui.activitys.*
import com.mints.wisdomclean.ui.fragment.base.BaseFragment import com.mints.wisdomclean.ui.fragment.base.BaseFragment
import com.mints.wisdomclean.utils.TimeRender import com.mints.wisdomclean.utils.TimeRender
import com.mints.library.utils.nodoubleclick.AntiShake import com.mints.library.utils.nodoubleclick.AntiShake
import com.mints.wisdomclean.ad.AdManager
import com.mints.wisdomclean.ad.AdStatusListener
import com.mints.wisdomclean.ui.widgets.DialogListener import com.mints.wisdomclean.ui.widgets.DialogListener
import com.mints.wisdomclean.ui.widgets.DialogUtils import com.mints.wisdomclean.ui.widgets.DialogUtils
import com.mints.wisdomclean.utils.LogUtil
import com.mints.wisdomclean.utils.SpanUtils import com.mints.wisdomclean.utils.SpanUtils
import com.mints.wisdomclean.utils.UcropUtils import com.mints.wisdomclean.utils.UcropUtils
import com.mints.wisdomclean.video.DPHolderManager
import com.mints.wisdomclean.video.DramaApiDetailActivity
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_CURRENT_DURATION
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_CUSTOM_REPORT_ENABLED
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_FREE_SET
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_HIDE_LEFT_TOP_TIPS
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_INFINITE_SCROLL_ENABLED
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_LOCK_SET
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_MODE
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_UNLOCK_INDEX
import kotlinx.android.synthetic.main.fragment_main_my.* import kotlinx.android.synthetic.main.fragment_main_my.*
/** /**
...@@ -49,6 +69,8 @@ class MyFragment : BaseFragment(), MyView, View.OnClickListener { ...@@ -49,6 +69,8 @@ class MyFragment : BaseFragment(), MyView, View.OnClickListener {
.create() .create()
initListener() initListener()
DPHolderManager.initDpSdk(requireContext())
} }
override fun onHiddenChanged(hidden: Boolean) { override fun onHiddenChanged(hidden: Boolean) {
...@@ -90,12 +112,67 @@ class MyFragment : BaseFragment(), MyView, View.OnClickListener { ...@@ -90,12 +112,67 @@ class MyFragment : BaseFragment(), MyView, View.OnClickListener {
override fun onClick(v: View?) { override fun onClick(v: View?) {
when (v?.id) { when (v?.id) {
R.id.ll_my_vip, R.id.fl_my_vip, R.id.iv_my_hint -> { R.id.ll_my_vip, R.id.fl_my_vip, R.id.iv_my_hint -> {
if (!userManager.vipFlag) { // if (!userManager.vipFlag) {
readyGo(VipActivity::class.java) // readyGo(VipActivity::class.java)
// }
AdManager.instance.showAd(requireActivity(), "", object : AdStatusListener {
override fun adSuccess() {
}
override fun adFail() {
} }
override fun adClose() {
}
})
} }
R.id.iv_my_set -> { R.id.iv_my_set -> {
readyGo(SettingsActivity::class.java) val idList = mutableListOf<Long>()
idList.add(6L)
DPSdk.factory().requestDrama(idList, object : IDPWidgetFactory.DramaCallback {
override fun onError(code: Int, msg: String?) {
showToast("请求失败")
LogUtil.d("request failed, code = $code, msg = $msg")
}
override fun onSuccess(
dataList: MutableList<out DPDrama>?,
info: MutableMap<String, Any>?
) {
showToast("请求成功")
dataList?.takeIf { it.isNotEmpty() }?.first()?.let {
LogUtil.d("request success, $it")
// 短剧集数
it.index = 1
val intent =
Intent(requireActivity(), DramaApiDetailActivity::class.java)
DramaApiDetailActivity.outerDrama = it
// 免费观看集数
intent.putExtra(KEY_DRAMA_UNLOCK_INDEX, 10)
// 封装或者非封装模式
intent.putExtra(KEY_DRAMA_MODE, DPDramaDetailConfig.SPECIFIC_DETAIL)
// 免费集数
intent.putExtra(KEY_DRAMA_FREE_SET, 0)
// 解锁集数
intent.putExtra(KEY_DRAMA_LOCK_SET, 0)
// 启播时间点
intent.putExtra(KEY_DRAMA_CURRENT_DURATION, 0)
// 无限下滑
intent.putExtra(KEY_DRAMA_INFINITE_SCROLL_ENABLED, true)
// 举报页面
intent.putExtra(KEY_DRAMA_CUSTOM_REPORT_ENABLED, false)
intent.putExtra(KEY_DRAMA_HIDE_LEFT_TOP_TIPS, false)
startActivity(intent)
}
}
})
// AdManager.instance.preLoadAd(requireActivity(), true)
// readyGo(SettingsActivity::class.java)
} }
R.id.ll_feedback, R.id.ll_contactus2, R.id.ll_contactus -> { R.id.ll_feedback, R.id.ll_contactus2, R.id.ll_contactus -> {
// 联系客服 // 联系客服
......
...@@ -10,6 +10,7 @@ import com.google.android.material.tabs.TabLayoutMediator ...@@ -10,6 +10,7 @@ import com.google.android.material.tabs.TabLayoutMediator
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.common.AppConfig import com.mints.wisdomclean.common.AppConfig
import com.mints.wisdomclean.common.Constant import com.mints.wisdomclean.common.Constant
import com.mints.wisdomclean.ui.activitys.MainActivity
import com.mints.wisdomclean.ui.adapter.RecommendPageAdapter import com.mints.wisdomclean.ui.adapter.RecommendPageAdapter
import com.mints.wisdomclean.ui.fragment.base.BaseFragment import com.mints.wisdomclean.ui.fragment.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_recommend.* import kotlinx.android.synthetic.main.fragment_recommend.*
...@@ -19,7 +20,9 @@ import kotlinx.android.synthetic.main.fragment_recommend.* ...@@ -19,7 +20,9 @@ import kotlinx.android.synthetic.main.fragment_recommend.*
* @date 2023/7/5 * @date 2023/7/5
* @desc 主页 -> 推荐 * @desc 主页 -> 推荐
*/ */
class RecommendFragment : BaseFragment() { class RecommendFragment : BaseFragment(), View.OnClickListener {
private var isEdit = false
private var mSelectTabIndex = -1 private var mSelectTabIndex = -1
private val tabsData = mutableListOf<String>() private val tabsData = mutableListOf<String>()
...@@ -27,6 +30,15 @@ class RecommendFragment : BaseFragment() { ...@@ -27,6 +30,15 @@ class RecommendFragment : BaseFragment() {
private var vpAdapter: RecommendPageAdapter? = null private var vpAdapter: RecommendPageAdapter? = null
override fun initViewsAndEvents() { override fun initViewsAndEvents() {
iv_edit.setOnClickListener(this)
iv_edit_close.setOnClickListener(this)
initVp2()
}
override fun getContentViewLayoutID() = R.layout.fragment_recommend
private fun initVp2() {
tabsData.add("追剧") tabsData.add("追剧")
tabsData.add("推荐") tabsData.add("推荐")
...@@ -58,8 +70,6 @@ class RecommendFragment : BaseFragment() { ...@@ -58,8 +70,6 @@ class RecommendFragment : BaseFragment() {
vp2_recommend.offscreenPageLimit = 2 vp2_recommend.offscreenPageLimit = 2
} }
override fun getContentViewLayoutID() = R.layout.fragment_recommend
private fun getTabView(position: Int): View { private fun getTabView(position: Int): View {
val view = LayoutInflater.from(requireContext()).inflate(R.layout.item_recommend_tab, null) val view = LayoutInflater.from(requireContext()).inflate(R.layout.item_recommend_tab, null)
view.findViewById<TextView>(R.id.item_tv).text = tabsData[position] view.findViewById<TextView>(R.id.item_tv).text = tabsData[position]
...@@ -79,7 +89,12 @@ class RecommendFragment : BaseFragment() { ...@@ -79,7 +89,12 @@ class RecommendFragment : BaseFragment() {
if (isSelected) { if (isSelected) {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.black)) text.setTextColor(ContextCompat.getColor(requireContext(), R.color.black))
} else { } else {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.my_color_gray)) text.setTextColor(
ContextCompat.getColor(
requireContext(),
R.color.my_color_gray
)
)
} }
line.background = line.background =
ContextCompat.getDrawable(requireContext(), R.drawable.shape_line_corner_red) ContextCompat.getDrawable(requireContext(), R.drawable.shape_line_corner_red)
...@@ -87,7 +102,12 @@ class RecommendFragment : BaseFragment() { ...@@ -87,7 +102,12 @@ class RecommendFragment : BaseFragment() {
if (isSelected) { if (isSelected) {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.white)) text.setTextColor(ContextCompat.getColor(requireContext(), R.color.white))
} else { } else {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.color_8D8F90)) text.setTextColor(
ContextCompat.getColor(
requireContext(),
R.color.color_8D8F90
)
)
} }
line.background = line.background =
ContextCompat.getDrawable(requireContext(), R.drawable.shape_line_corner_white) ContextCompat.getDrawable(requireContext(), R.drawable.shape_line_corner_white)
...@@ -102,4 +122,44 @@ class RecommendFragment : BaseFragment() { ...@@ -102,4 +122,44 @@ class RecommendFragment : BaseFragment() {
} }
} }
override fun onClick(v: View?) {
when (v?.id) {
R.id.iv_edit -> {
handleEditStyle(true)
}
R.id.iv_edit_close -> {
handleEditStyle(false)
}
else -> {}
}
}
private fun handleEditStyle(isEdit: Boolean) {
if (isEdit) {
// 禁止滑动
vp2_recommend.isUserInputEnabled = false
iv_edit.visibility = View.GONE
iv_edit_close.visibility = View.VISIBLE
tab_recommend.visibility = View.GONE
tv_edit_text.visibility = View.VISIBLE
} else {
// 允许滑动
vp2_recommend.isUserInputEnabled = true
iv_edit.visibility = View.VISIBLE
iv_edit_close.visibility = View.GONE
tab_recommend.visibility = View.VISIBLE
tv_edit_text.visibility = View.GONE
}
(requireActivity() as MainActivity).showEdit(isEdit)
(fragments[0] as FollowVideoFragment).getAdapter().setEditStyle(isEdit)
}
fun fullChoice() {
(fragments[0] as FollowVideoFragment).getAdapter().fullChoice()
}
fun delete() {
}
} }
\ No newline at end of file
package com.mints.wisdomclean.video
import android.content.Context
import android.util.Log
import com.bytedance.sdk.dp.DPSdk
import com.bytedance.sdk.dp.DPSdkConfig
/**
* @author Assen
* @date 2023/6/21
* @desc
*/
object DPHolderManager {
const val TAG = "DPHolderManager"
var isDPStarted = false
fun initDpSdk(context: Context) {
//1. 初始化,最好放到application.onCreate()执行
val configBuilder = DPSdkConfig.Builder().debug(true)
DPSdk.init(context, "SDK_Setting_5175152.json", configBuilder.build())
startDpSdk()
}
fun startDpSdk() {
DPSdk.start { isSuccess, message ->
//请确保使用Sdk时Sdk已经成功启动
//isSuccess=true表示启动成功
//启动失败,可以再次调用启动接口(建议最多不要超过3次)
isDPStarted = isSuccess
Log.e(TAG, "start result=$isSuccess, msg=$message")
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="6dp" />
<solid android:color="@color/half_transparent" />
</shape>
\ No newline at end of file
...@@ -76,5 +76,36 @@ ...@@ -76,5 +76,36 @@
android:src="@drawable/home_tab_my_selector" /> android:src="@drawable/home_tab_my_selector" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout
android:id="@+id/ll_edit"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:elevation="2dp"
android:orientation="horizontal"
android:visibility="gone">
<TextView
android:id="@+id/tv_full"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="全选"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_delete"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="删除"
android:textColor="@color/red" />
</LinearLayout>
</RelativeLayout> </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fl_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:textColor="#FFFFFFFF"
android:textSize="16sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="bottom"
android:orientation="horizontal">
<EditText
android:id="@+id/et_drama_index"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="number"
android:text="10"
android:textColor="#f00"
android:textSize="14sp" />
<Button
android:id="@+id/btn_go"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="跳转到指定集数"
android:textSize="13sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/block_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#99000000"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/unlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="解锁" />
<Button
android:id="@+id/leave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="离开" />
</LinearLayout>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fl_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/draw_drama_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
\ No newline at end of file
...@@ -10,15 +10,48 @@ ...@@ -10,15 +10,48 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:overScrollMode="never" /> android:overScrollMode="never" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="20dp">
<com.google.android.material.tabs.TabLayout <com.google.android.material.tabs.TabLayout
android:id="@+id/tab_recommend" android:id="@+id/tab_recommend"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
app:tabBackground="@null" app:tabBackground="@null"
app:tabIndicatorHeight="0dp" app:tabIndicatorHeight="0dp"
app:tabMode="fixed" app:tabMode="fixed"
app:tabRippleColor="@null" /> app:tabRippleColor="@null" />
<TextView
android:id="@+id/tv_edit_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="追剧"
android:textColor="@color/black"
android:textSize="16sp"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_arrow_back" />
<ImageView
android:id="@+id/iv_edit_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_close"
android:visibility="gone" />
</FrameLayout>
</FrameLayout> </FrameLayout>
\ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="180dp">
<ImageView <ImageView
android:id="@+id/image_iv" android:id="@+id/image_iv"
...@@ -44,4 +44,26 @@ ...@@ -44,4 +44,26 @@
app:layout_constraintStart_toStartOf="@id/image_iv" app:layout_constraintStart_toStartOf="@id/image_iv"
app:layout_constraintTop_toBottomOf="@id/title_tv" /> app:layout_constraintTop_toBottomOf="@id/title_tv" />
<FrameLayout
android:id="@+id/fm_mask"
android:layout_width="100dp"
android:layout_height="180dp"
android:background="@drawable/shape_half_trans2"
app:layout_constraintEnd_toEndOf="@id/image_iv"
app:layout_constraintStart_toStartOf="@id/image_iv"
app:layout_constraintTop_toTopOf="@id/image_iv">
<CheckBox
android:id="@+id/cb"
style="@style/Widget.AppCompat.CompoundButton.RadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="4dp"
android:layout_marginEnd="4dp"
android:visibility="visible" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -44,4 +44,4 @@ RELEASE_UMENG_KEY=63c0fd97d64e68613917170f ...@@ -44,4 +44,4 @@ RELEASE_UMENG_KEY=63c0fd97d64e68613917170f
GROMORE_APP_ID="5404192" GROMORE_APP_ID="5404192"
GROMORE_SPLASH_CODE="102371299" GROMORE_SPLASH_CODE="102371299"
GROMORE_VIDEO_CODE="1" GROMORE_VIDEO_CODE="102385608"
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment