Commit b31d5d0e authored by jyx's avatar jyx

代码优化

parent 748e137e
...@@ -89,8 +89,8 @@ public class MintsApplication extends MultiDexApplication { ...@@ -89,8 +89,8 @@ public class MintsApplication extends MultiDexApplication {
*/ */
public void thirdConfig() { public void thirdConfig() {
// 未同意权限弹窗,不进行SDK初始化 // 未同意权限弹窗,不进行SDK初始化
if (AppPreferencesManager.INSTANCE.get() // if (AppPreferencesManager.INSTANCE.get()
.getBoolean(Constant.LOAN_PERMISSION_FLAG, true)) return; // .getBoolean(Constant.LOAN_PERMISSION_FLAG, true)) return;
initMiitHelper(); initMiitHelper();
......
package com.mints.wisdomclean.mvp.model
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize
@Parcelize
data class EpisodeBean(
var lock: Boolean = false,
var playing: Boolean = false,
var title: String = "",
) : Parcelable, java.io.Serializable
\ No newline at end of file
package com.mints.wisdomclean.ui.adapter package com.mints.wisdomclean.ui.adapter
import android.graphics.Color
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
import com.mints.wisdomclean.mvp.model.EpisodeBean
/** /**
* @author Assen * @author Assen
...@@ -10,9 +13,18 @@ import com.mints.wisdomclean.R ...@@ -10,9 +13,18 @@ import com.mints.wisdomclean.R
* @desc * @desc
*/ */
class ItemVideoEpisodeAdapter : class ItemVideoEpisodeAdapter :
BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_item_video_epsiode) { BaseQuickAdapter<EpisodeBean, BaseViewHolder>(R.layout.item_item_video_epsiode) {
override fun convert(holder: BaseViewHolder, item: String) { override fun convert(holder: BaseViewHolder, item: EpisodeBean) {
holder.setText(R.id.item_tv, item) holder.setText(R.id.item_tv, item.title)
if (item.playing) holder.setTextColor(R.id.item_tv, Color.RED)
else holder.setTextColor(R.id.item_tv, Color.BLACK)
holder.getView<View>(R.id.item_iv_lock).visibility =
if (item.lock) View.VISIBLE else View.GONE
holder.getView<View>(R.id.item_iv_play).visibility =
if (item.playing) View.VISIBLE else View.GONE
} }
} }
\ No newline at end of file
...@@ -5,6 +5,7 @@ import androidx.recyclerview.widget.RecyclerView ...@@ -5,6 +5,7 @@ import androidx.recyclerview.widget.RecyclerView
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
import com.mints.wisdomclean.mvp.model.EpisodeBean
import com.mints.wisdomclean.utils.ToastUtil import com.mints.wisdomclean.utils.ToastUtil
/** /**
...@@ -13,17 +14,17 @@ import com.mints.wisdomclean.utils.ToastUtil ...@@ -13,17 +14,17 @@ import com.mints.wisdomclean.utils.ToastUtil
* @desc * @desc
*/ */
class VideoEpisodeAdapter : class VideoEpisodeAdapter :
BaseQuickAdapter<List<String>, BaseViewHolder>(R.layout.item_video_epsiode) { BaseQuickAdapter<List<EpisodeBean>, BaseViewHolder>(R.layout.item_video_epsiode) {
override fun convert(holder: BaseViewHolder, item: List<String>) { override fun convert(holder: BaseViewHolder, item: List<EpisodeBean>) {
val rv = holder.getView<RecyclerView>(R.id.item_rv) val rv = holder.getView<RecyclerView>(R.id.item_rv)
rv.layoutManager = GridLayoutManager(context, 6) rv.layoutManager = GridLayoutManager(context, 6)
val itemVideoEpisodeAdapter = ItemVideoEpisodeAdapter() val itemVideoEpisodeAdapter = ItemVideoEpisodeAdapter()
rv.adapter = itemVideoEpisodeAdapter rv.adapter = itemVideoEpisodeAdapter
val list = mutableListOf<String>() val list = mutableListOf<EpisodeBean>()
itemVideoEpisodeAdapter.addChildClickViewIds(R.id.item_tv) itemVideoEpisodeAdapter.addChildClickViewIds(R.id.item_tv)
itemVideoEpisodeAdapter.setOnItemChildClickListener { adapter, view, position -> itemVideoEpisodeAdapter.setOnItemChildClickListener { adapter, view, position ->
ToastUtil.show(context, item[position]) mOnEpisodeClickListener?.onEpisodeClick(position)
} }
list.addAll(item) list.addAll(item)
itemVideoEpisodeAdapter.setNewInstance(list) itemVideoEpisodeAdapter.setNewInstance(list)
...@@ -32,4 +33,16 @@ class VideoEpisodeAdapter : ...@@ -32,4 +33,16 @@ class VideoEpisodeAdapter :
override fun getItemCount(): Int { override fun getItemCount(): Int {
return data.size % 30 return data.size % 30
} }
private var mOnEpisodeClickListener: OnEpisodeClickListener? = null
fun setOnEpisodeClickListener(onEpisodeClickListener: OnEpisodeClickListener?) {
mOnEpisodeClickListener = onEpisodeClickListener
}
interface OnEpisodeClickListener {
fun onEpisodeClick(position: Int)
}
} }
\ No newline at end of file
...@@ -33,7 +33,6 @@ import com.mints.wisdomclean.utils.SpanUtils ...@@ -33,7 +33,6 @@ 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.DPHolderManager
import com.mints.wisdomclean.video.DramaApiDetailActivity 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_CUSTOM_REPORT_ENABLED
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_FREE_SET 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_HIDE_LEFT_TOP_TIPS
...@@ -157,8 +156,6 @@ class MyFragment : BaseFragment(), MyView, View.OnClickListener { ...@@ -157,8 +156,6 @@ class MyFragment : BaseFragment(), MyView, View.OnClickListener {
intent.putExtra(KEY_DRAMA_FREE_SET, 0) intent.putExtra(KEY_DRAMA_FREE_SET, 0)
// 解锁集数 // 解锁集数
intent.putExtra(KEY_DRAMA_LOCK_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_INFINITE_SCROLL_ENABLED, true)
// 举报页面 // 举报页面
......
...@@ -10,6 +10,7 @@ import androidx.viewpager2.widget.ViewPager2 ...@@ -10,6 +10,7 @@ import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.mvp.model.EpisodeBean
import com.mints.wisdomclean.ui.adapter.VideoEpisodeAdapter import com.mints.wisdomclean.ui.adapter.VideoEpisodeAdapter
import com.mints.wisdomclean.utils.CommonUtils import com.mints.wisdomclean.utils.CommonUtils
...@@ -27,6 +28,9 @@ class VideoEpisodeDialog(context: Context, private val listener: DialogListener) ...@@ -27,6 +28,9 @@ class VideoEpisodeDialog(context: Context, private val listener: DialogListener)
private val tab: TabLayout private val tab: TabLayout
private val ivClose: ImageView private val ivClose: ImageView
private val mData = mutableListOf<EpisodeBean>()
private var adapter: VideoEpisodeAdapter? = null
init { init {
setContentView(R.layout.dialog_video_episode) setContentView(R.layout.dialog_video_episode)
// 设置window属性 // 设置window属性
...@@ -55,20 +59,20 @@ class VideoEpisodeDialog(context: Context, private val listener: DialogListener) ...@@ -55,20 +59,20 @@ class VideoEpisodeDialog(context: Context, private val listener: DialogListener)
} }
private fun initVp() { private fun initVp() {
val data = arrayListOf<String>()
for (i in 1..100) { for (i in 1..100) {
data.add("" + i) mData.add(EpisodeBean(lock = false, playing = false, "" + i))
} }
val subList = CommonUtils.getSubList(30, data) val subList = CommonUtils.getSubList(30, mData)
val adapter = VideoEpisodeAdapter() adapter = VideoEpisodeAdapter()
adapter.setNewInstance(subList) adapter?.setNewInstance(subList)
vp2.adapter = adapter vp2.adapter = adapter
TabLayoutMediator(tab, vp2) { tab, position -> TabLayoutMediator(tab, vp2) { tab, position ->
// 初始化Tab // 初始化Tab
tab.id = position tab.id = position
tab.customView = tab.customView =
getTabView( getTabView(
"" + subList[position][0] + "-" + subList[position][subList[position].size - 1], subList[position][0].title + "-"
+ subList[position][subList[position].size - 1].title,
position position
) )
}.attach() }.attach()
...@@ -107,4 +111,20 @@ class VideoEpisodeDialog(context: Context, private val listener: DialogListener) ...@@ -107,4 +111,20 @@ class VideoEpisodeDialog(context: Context, private val listener: DialogListener)
} }
} }
fun setCurrentIndex(position: Int) {
for (mDatum in mData) {
mDatum.playing = false
}
mData[position - 1].playing = true
// adapter?.notifyItemChanged(position)
adapter?.notifyDataSetChanged()
}
private var mOnEpisodeClickListener: VideoEpisodeAdapter.OnEpisodeClickListener? = null
fun setOnEpisodeClickListener(onEpisodeClickListener: VideoEpisodeAdapter.OnEpisodeClickListener) {
mOnEpisodeClickListener = onEpisodeClickListener
adapter?.setOnEpisodeClickListener(mOnEpisodeClickListener)
}
} }
\ No newline at end of file
package com.mints.wisdomclean.video package com.mints.wisdomclean.video
import android.app.Dialog
import android.content.Context import android.content.Context
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.widget.Button import android.widget.Button
import android.widget.EditText
import android.widget.LinearLayout import android.widget.LinearLayout
import com.bytedance.sdk.dp.* import com.bytedance.sdk.dp.*
import com.mints.wisdomclean.MintsApplication import com.mints.wisdomclean.MintsApplication
...@@ -12,7 +12,11 @@ import com.mints.wisdomclean.R ...@@ -12,7 +12,11 @@ import com.mints.wisdomclean.R
import com.mints.wisdomclean.ad.AdManager import com.mints.wisdomclean.ad.AdManager
import com.mints.wisdomclean.ad.AdStatusListener import com.mints.wisdomclean.ad.AdStatusListener
import com.mints.wisdomclean.ui.activitys.base.BaseActivity import com.mints.wisdomclean.ui.activitys.base.BaseActivity
import com.mints.wisdomclean.ui.adapter.VideoEpisodeAdapter
import com.mints.wisdomclean.ui.widgets.DialogListener
import com.mints.wisdomclean.ui.widgets.VideoEpisodeDialog
import kotlinx.android.synthetic.main.drama_activity_api_detail.* import kotlinx.android.synthetic.main.drama_activity_api_detail.*
import kotlinx.android.synthetic.main.drama_activity_api_detail.fm_bottom
import org.json.JSONObject import org.json.JSONObject
/** /**
...@@ -20,7 +24,7 @@ import org.json.JSONObject ...@@ -20,7 +24,7 @@ import org.json.JSONObject
* @date 2023/7/6 * @date 2023/7/6
* @desc * @desc
*/ */
class DramaApiDetailActivity : BaseActivity() { class DramaApiDetailActivity : BaseActivity(), VideoEpisodeAdapter.OnEpisodeClickListener {
companion object { companion object {
const val KEY_DRAMA_UNLOCK_INDEX = "key_drama_unlock_index" const val KEY_DRAMA_UNLOCK_INDEX = "key_drama_unlock_index"
...@@ -28,7 +32,6 @@ class DramaApiDetailActivity : BaseActivity() { ...@@ -28,7 +32,6 @@ class DramaApiDetailActivity : BaseActivity() {
const val KEY_DRAMA_MODE = "key_drama_mode" const val KEY_DRAMA_MODE = "key_drama_mode"
const val KEY_DRAMA_FREE_SET = "key_drama_free_set" const val KEY_DRAMA_FREE_SET = "key_drama_free_set"
const val KEY_DRAMA_LOCK_SET = "key_drama_lock_set" const val KEY_DRAMA_LOCK_SET = "key_drama_lock_set"
const val KEY_DRAMA_CURRENT_DURATION = "drama_current_duration"
const val KEY_DRAMA_INFINITE_SCROLL_ENABLED = "key_drama_infinite_scroll_enabled" const val KEY_DRAMA_INFINITE_SCROLL_ENABLED = "key_drama_infinite_scroll_enabled"
const val KEY_DRAMA_CUSTOM_REPORT_ENABLED = "key_drama_custom_report_enabled" const val KEY_DRAMA_CUSTOM_REPORT_ENABLED = "key_drama_custom_report_enabled"
const val KEY_DRAMA_HIDE_LEFT_TOP_TIPS = "key_drama_hide_left_top_tips" const val KEY_DRAMA_HIDE_LEFT_TOP_TIPS = "key_drama_hide_left_top_tips"
...@@ -62,14 +65,8 @@ class DramaApiDetailActivity : BaseActivity() { ...@@ -62,14 +65,8 @@ class DramaApiDetailActivity : BaseActivity() {
private var unlockBtn: Button? = null private var unlockBtn: Button? = null
private var leaveBtn: Button? = null private var leaveBtn: Button? = null
private var indexEt: EditText? = null
private var goBtn: Button? = null
private var lastIndex = 1 private var lastIndex = 1
private var currentDuration = 0
private var enableInfiniteScroll = true private var enableInfiniteScroll = true
private var enableCustomReport = false private var enableCustomReport = false
...@@ -89,15 +86,15 @@ class DramaApiDetailActivity : BaseActivity() { ...@@ -89,15 +86,15 @@ class DramaApiDetailActivity : BaseActivity() {
override fun getContentViewLayoutID() = R.layout.drama_activity_api_detail override fun getContentViewLayoutID() = R.layout.drama_activity_api_detail
override fun initViewsAndEvents() { override fun initViewsAndEvents() {
fm_bottom.setOnClickListener {
showEpisodeDialog()
}
blockView = findViewById<LinearLayout>(R.id.block_view) blockView = findViewById<LinearLayout>(R.id.block_view)
blockView?.isClickable = true blockView?.isClickable = true
unlockBtn = findViewById(R.id.unlock) unlockBtn = findViewById(R.id.unlock)
leaveBtn = findViewById(R.id.leave) leaveBtn = findViewById(R.id.leave)
indexEt = findViewById(R.id.et_drama_index)
goBtn = findViewById(R.id.btn_go)
blockView?.visibility = View.GONE blockView?.visibility = View.GONE
drama = outerDrama drama = outerDrama
...@@ -107,7 +104,6 @@ class DramaApiDetailActivity : BaseActivity() { ...@@ -107,7 +104,6 @@ class DramaApiDetailActivity : BaseActivity() {
tv_info.text = String.format("《%s》共%d集", it.title, it.total) tv_info.text = String.format("《%s》共%d集", it.title, it.total)
} }
currentDuration = intent.getIntExtra(KEY_DRAMA_CURRENT_DURATION, 0)
enableInfiniteScroll = enableInfiniteScroll =
intent.getBooleanExtra(KEY_DRAMA_INFINITE_SCROLL_ENABLED, true) intent.getBooleanExtra(KEY_DRAMA_INFINITE_SCROLL_ENABLED, true)
enableCustomReport = enableCustomReport =
...@@ -132,16 +128,10 @@ class DramaApiDetailActivity : BaseActivity() { ...@@ -132,16 +128,10 @@ class DramaApiDetailActivity : BaseActivity() {
} }
initWidget() initWidget()
dpWidget?.let { widget -> dpWidget?.let { widget ->
supportFragmentManager.beginTransaction().replace(R.id.fl_container, widget.fragment) supportFragmentManager.beginTransaction().replace(R.id.fl_container, widget.fragment)
.commit() .commit()
goBtn?.setOnClickListener {
val index = indexEt?.editableText.toString().toInt()
widget.currentDramaIndex = index
}
leaveBtn?.setOnClickListener { leaveBtn?.setOnClickListener {
finish() finish()
} }
...@@ -172,7 +162,7 @@ class DramaApiDetailActivity : BaseActivity() { ...@@ -172,7 +162,7 @@ class DramaApiDetailActivity : BaseActivity() {
) )
.id(drama.id) .id(drama.id)
.index(drama.index) .index(drama.index)
.currentDuration(currentDuration) // .currentDuration(currentDuration)
.fromCard(isFromCard, fromGid.toString()) .fromCard(isFromCard, fromGid.toString())
) )
} }
...@@ -251,6 +241,7 @@ class DramaApiDetailActivity : BaseActivity() { ...@@ -251,6 +241,7 @@ class DramaApiDetailActivity : BaseActivity() {
override fun onDPPageChange(position: Int, map: MutableMap<String, Any>?) { override fun onDPPageChange(position: Int, map: MutableMap<String, Any>?) {
super.onDPPageChange(position, map) super.onDPPageChange(position, map)
Log.d(TAG, "onDPPageChange:" + map?.toString()) Log.d(TAG, "onDPPageChange:" + map?.toString())
dialog?.setCurrentIndex(position)
} }
override fun onDPVideoPlay(map: MutableMap<String, Any>?) { override fun onDPVideoPlay(map: MutableMap<String, Any>?) {
...@@ -391,4 +382,30 @@ class DramaApiDetailActivity : BaseActivity() { ...@@ -391,4 +382,30 @@ class DramaApiDetailActivity : BaseActivity() {
} }
} }
private var dialog: VideoEpisodeDialog? = null
private fun showEpisodeDialog() {
if (dialog != null && !dialog!!.isShowing) {
dialog!!.setCurrentIndex(lastIndex)
dialog!!.show()
} else {
dialog = VideoEpisodeDialog(this, object : DialogListener() {
override fun onClick(dialog: Dialog?, v: View?) {
super.onClick(dialog, v)
dialog?.dismiss()
}
})
dialog!!.setOnEpisodeClickListener(this)
dialog!!.setCurrentIndex(lastIndex)
dialog?.show()
}
}
override fun onEpisodeClick(position: Int) {
dpWidget?.let { widget ->
widget.currentDramaIndex = position + 1
}
dialog?.dismiss()
}
} }
\ No newline at end of file
...@@ -13,7 +13,6 @@ import com.bytedance.sdk.dp.IDPDrawListener ...@@ -13,7 +13,6 @@ import com.bytedance.sdk.dp.IDPDrawListener
import com.bytedance.sdk.dp.IDPWidget import com.bytedance.sdk.dp.IDPWidget
import com.mints.wisdomclean.R import com.mints.wisdomclean.R
import com.mints.wisdomclean.ui.fragment.base.BaseFragment import com.mints.wisdomclean.ui.fragment.base.BaseFragment
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_CURRENT_DURATION
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_UNLOCK_INDEX import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_UNLOCK_INDEX
/** /**
...@@ -95,7 +94,6 @@ class DrawDramaFragment : BaseFragment() { ...@@ -95,7 +94,6 @@ class DrawDramaFragment : BaseFragment() {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
DramaApiDetailActivity.outerDrama = drama DramaApiDetailActivity.outerDrama = drama
intent.putExtra(KEY_DRAMA_UNLOCK_INDEX, 100) intent.putExtra(KEY_DRAMA_UNLOCK_INDEX, 100)
intent.putExtra(KEY_DRAMA_CURRENT_DURATION, current)
context.startActivity(intent) context.startActivity(intent)
} }
.freeSet(FREE_SET) .freeSet(FREE_SET)
......
...@@ -255,19 +255,23 @@ class VideoActivity : BaseActivity(), View.OnClickListener { ...@@ -255,19 +255,23 @@ class VideoActivity : BaseActivity(), View.OnClickListener {
finish() finish()
} }
R.id.fm_bottom -> { R.id.fm_bottom -> {
if (dialog != null) { showEpisodeDialog()
dialog!!.show()
} else {
dialog = VideoEpisodeDialog(this, object : DialogListener() {
override fun onClick(dialog: Dialog?, v: View?) {
super.onClick(dialog, v)
dialog?.dismiss()
}
})
dialog?.show()
}
} }
else -> {} else -> {}
} }
} }
private fun showEpisodeDialog() {
if (dialog != null && !dialog!!.isShowing) {
dialog!!.show()
} else {
dialog = VideoEpisodeDialog(this, object : DialogListener() {
override fun onClick(dialog: Dialog?, v: View?) {
super.onClick(dialog, v)
dialog?.dismiss()
}
})
dialog?.show()
}
}
} }
\ No newline at end of file
...@@ -6,7 +6,51 @@ ...@@ -6,7 +6,51 @@
<FrameLayout <FrameLayout
android:id="@+id/fl_container" android:id="@+id/fl_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent"
android:layout_marginBottom="50dp" />
<FrameLayout
android:id="@+id/fm_bottom"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="bottom"
android:background="@color/black">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_gravity="center"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:background="@drawable/shape_half_trans"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_10">
<ImageView
android:layout_width="26dp"
android:layout_height="26dp"
android:src="@mipmap/ic_call_wx" />
<TextView
android:id="@+id/episode_tv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:text="共100集 已完结 >"
android:textColor="@color/white" />
<ImageView
android:layout_width="26dp"
android:layout_height="26dp"
android:rotation="180"
android:src="@mipmap/ic_arrow_bottom" />
</LinearLayout>
</FrameLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -22,33 +66,6 @@ ...@@ -22,33 +66,6 @@
android:textColor="#FFFFFFFF" android:textColor="#FFFFFFFF"
android:textSize="16sp" /> 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>
......
...@@ -7,6 +7,13 @@ ...@@ -7,6 +7,13 @@
android:layout_marginBottom="@dimen/dp_4" android:layout_marginBottom="@dimen/dp_4"
android:background="@drawable/shape_btn_enabled"> android:background="@drawable/shape_btn_enabled">
<ImageView
android:id="@+id/item_iv_lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|top"
android:src="@mipmap/iv_lock" />
<TextView <TextView
android:id="@+id/item_tv" android:id="@+id/item_tv"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -16,4 +23,11 @@ ...@@ -16,4 +23,11 @@
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" /> android:textSize="16sp" />
<ImageView
android:id="@+id/item_iv_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom"
android:src="@mipmap/iv_playing" />
</FrameLayout> </FrameLayout>
\ 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