lmw
2024-07-09 b13afc751dbbce24753d008f1f87d2c5e133a4ad
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
package cn.sinata.xldutils.fragment
 
import android.net.Uri
import android.os.Bundle
import androidx.fragment.app.Fragment
import cn.sinata.xldutils.R
import cn.sinata.xldutils.view.ZoomableDraweeView
import cn.sinata.xldutils.view.util.DefaultZoomableController
import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.drawee.drawable.ProgressBarDrawable
import com.facebook.drawee.drawable.ScalingUtils
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder
import org.jetbrains.anko.support.v4.find
 
/**
 *
 */
class ImageFragment:BaseFragment() {
 
    companion object {
        fun newInstance(url:String): Fragment {
            val fragment = ImageFragment()
            val bundle = Bundle()
            bundle.putString("url",url)
            fragment.arguments = bundle
            return fragment
        }
    }
 
    override fun contentViewId(): Int = R.layout.fragment_image
 
    override fun onFirstVisibleToUser() {
        var url:String
        if (arguments == null) {
            url = ""
        } else {
            url = arguments?.getString("url")?:""
        }
 
        val zoomDraweeView = find<ZoomableDraweeView>(R.id.zoomDrawee)
        val hierarchy = GenericDraweeHierarchyBuilder(resources)
                .setActualImageScaleType(ScalingUtils.ScaleType.FIT_CENTER)
                .setProgressBarImage(ProgressBarDrawable())
                .build()
        println(url)
        val uri = Uri.parse(url)
 
        val controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setTapToRetryEnabled(true)
                .build()
 
 
        zoomDraweeView.hierarchy= hierarchy
        zoomDraweeView.controller = controller
        zoomDraweeView.setZoomableController(DefaultZoomableController.newInstance())
 
        zoomDraweeView.setOnClickListener{
            if (activity != null) {
                activity?.onBackPressed()
            }
        }
    }
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        userVisibleHint = true
    }
}