lmw
2024-10-25 314b67e56f24f7bce040ae2b5d57c7eac7b197a9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package com.sinata.xqmuse.ui.discovery
 
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import android.webkit.WebViewClient
import cn.sinata.xldutils.gone
import com.google.android.material.appbar.AppBarLayout
import com.sinata.xqmuse.R
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.ui.TransparentStatusBarActivity
import com.sinata.xqmuse.ui.discovery.adapter.BannerAdapter
import com.sinata.xqmuse.utils.AppBarStateChangeListener
import com.youth.banner.indicator.CircleIndicator
import com.youth.banner.indicator.RectangleIndicator
import com.youth.banner.indicator.RoundLinesIndicator
import kotlinx.android.synthetic.main.activity_place_detail.*
import org.jetbrains.anko.backgroundColor
import org.jetbrains.anko.imageResource
import org.jetbrains.anko.textColorResource
 
class PlaceDetailActivity:TransparentStatusBarActivity() {
    override fun setContentView() = R.layout.activity_place_detail
 
    private val id by lazy { intent.getStringExtra("id") }
    private val bannerImg = arrayListOf<String>()
    private val bannerAdapter by lazy {
        BannerAdapter(bannerImg, this)
    }
 
    override fun initClick() {
        iv_back.setOnClickListener { finish() }
    }
 
    override fun initView() {
        titleBar.gone()
        banner.adapter = bannerAdapter
        banner.indicator = RectangleIndicator(this)
        val settings = webView.settings
        settings.javaScriptEnabled = true
        settings.javaScriptCanOpenWindowsAutomatically = true
        settings.defaultTextEncodingName = "utf-8"
        settings.domStorageEnabled = true
        settings.setSupportZoom(true)
//        settings.textZoom = 200
        settings.useWideViewPort = true
        settings.loadWithOverviewMode = true
        settings.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
        webView.webChromeClient = object : WebChromeClient() {}
        webView.webViewClient = object : WebViewClient() {}
        webView.backgroundColor = 0
        appbar.addOnOffsetChangedListener(object : AppBarStateChangeListener() {
            override fun onStateChanged(appBarLayout: AppBarLayout?, state: State?, ratio:Double) {
                bg.alpha = if(ratio<0.2) 0f else ((ratio-0.2)/0.8).toFloat()
                when (state) {
                    State.EXPANDED -> {
                        //展开状态
                        iv_back.imageResource = R.mipmap.icon_back_white
                        tvTitle.textColorResource = R.color.white
                    }
                    State.COLLAPSED -> {
                        //折叠状态
                        iv_back.imageResource = R.mipmap.back
                        tvTitle.textColorResource = R.color.textColor
                    }
                }
            }
        })
        getData()
    }
 
    private fun getData() {
        HttpManager.getMeditationInfo(id?:"").request(this){_,data->
            data?.apply {
                bannerImg.clear()
                bannerImg.addAll(detailBannerUrl.split(",").filter { !it.isNullOrEmpty() })
                bannerAdapter.notifyDataSetChanged()
                banner.postDelayed({
                    banner.isAutoLoop(true)
                                   banner.start()
                                   },2000)
                tv_name.text = hallName
                tv_phone.text = contactNumber
                tv_address.text = address
                tv_time.text = "营业时间:$businessHours"
                val sHead =
                    "<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
                webView!!.loadDataWithBaseURL(
                    null,
                    sHead + briefIntroduction,
                    "text/html",
                    "utf-8",
                    null
                )
            }
        }
    }
 
}