package com.yidianling.tests.home.widget import android.content.Context import android.graphics.Color import android.text.TextUtils import android.util.TypedValue import android.view.View import android.view.ViewGroup import android.widget.FrameLayout import android.widget.LinearLayout import android.widget.TextView import com.ydl.ydl_image.module.GlideApp import com.ydl.ydlcommon.utils.ScreenUtil import com.yidianling.common.tools.LogUtil import com.yidianling.common.tools.RxImageTool import com.yidianling.tests.R import com.yidianling.tests.home.bean.TestHomeBodyBean import com.yidianling.tests.home.bean.TestHomeDataBean import com.yidianling.tests.home.event.ITestHomeEvent import com.yidianling.tests.home.utils.TestHomeUtils import kotlinx.android.synthetic.main.tests_testhome_recommend_first_view.view.* /** * @author yuanwai * @描述:热门推荐列表第一个显示的View * @Copyright Copyright (c) 2018 * @Company 壹点灵 * @date 2018/8/3 */ class TestHomeRecommendedFirstView(mContext: Context, testHomeEvent: ITestHomeEvent) : FrameLayout(mContext) { /** * 图片宽度 */ private var imgWidth = 0 private var isAddTitle = false private var testHomeEvent: ITestHomeEvent? = null var couponMoney = "" init { this.testHomeEvent = testHomeEvent initView() } /** * 界面初始化 */ private fun initView() { View.inflate(context, R.layout.tests_testhome_recommend_first_view, this) imgWidth = ScreenUtil.screenWidth - RxImageTool.dip2px(30f) initImageParam() addTitle() } private fun addTitle() { if (isAddTitle) { return } isAddTitle = true val params = FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) params.leftMargin = RxImageTool.dip2px(15f) params.topMargin = RxImageTool.dip2px(30f) val titleView = TextView(context) titleView.id = R.id.tests_testhome_recommenTitle titleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18f) titleView.setTextColor(resources.getColor(R.color.tests_testhome_title)) val drawable = resources.getDrawable(R.drawable.tests_testhome_hot) /// 这一步必须要做,否则不会显示. drawable.setBounds(0, 0, drawable.minimumWidth, drawable.minimumHeight) titleView.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null) titleView.compoundDrawablePadding = RxImageTool.dip2px(5f) titleView.layoutParams = params addView(titleView) } fun initData(dataBean: TestHomeDataBean, position: Int) { if (null == dataBean || null == dataBean.body || dataBean.body.isEmpty()) { visibility = View.GONE return } //设置标题 findViewById<TextView>(R.id.tests_testhome_recommenTitle).text = dataBean.head!!.title //设置推荐列表数据 initRecommeded(dataBean.body!![0], position) } private fun initImageParam() { val params = LinearLayout.LayoutParams(imgWidth, imgWidth/2) img_recom.layoutParams = params } /** * 设置推荐列表数据 */ private fun initRecommeded(bodyBean: TestHomeBodyBean, position: Int) { tv_recomTitle.text = bodyBean.recommendedTitle tv_recomContent.text = bodyBean.recommendedContent setPrice(bodyBean.recommendedPrice) tv_recomNum.text = TestHomeUtils.getNum(context, bodyBean.recommendedNum) GlideApp.with(context).load(bodyBean.recommendedUrl).placeholder(R.drawable.tests_testhome_banner_nor) .into(img_recom) LogUtil.e("宽:${img_recom.measuredWidth};高${img_recom.measuredHeight}") tv_Hits.text = TestHomeUtils.getHits(context, bodyBean.recommendedHits) setOnClickListener { testHomeEvent!!.recommendedClick(bodyBean.recommendedLinkUrl, position, bodyBean.recommendedTitle) } } private fun setPrice(price: String?) { if (TextUtils.isEmpty(price)) { tv_recomPrice.visibility = View.INVISIBLE return } tv_recomPrice.visibility = View.VISIBLE if ("免费" == price) { tv_recomPrice.text = price tv_recomPrice.setBackgroundResource(R.drawable.tests_testhome_recom_price_bg) tv_recomPrice.setTextColor(Color.parseColor("#34CD65")) } else { var newPrice = TestHomeUtils.getOriginalPrice(tv_coupon_money,price,couponMoney) var priceContent = "¥$newPrice" TestHomeUtils.priceStyleNew(context, tv_recomPrice, priceContent, 1, priceContent.length) tv_recomPrice.setBackgroundResource(R.drawable.tests_testhome_null) } } /** * 释放 */ fun onDestory() { isAddTitle = false } }