壁画关闭叠加视图

时间:2017-07-11 10:33:10

标签: android image kotlin overlay fresco

我有一张带照片的个人资料类。当我点击照片时,它显示叠加。我需要通过关闭图像上的clickink关闭此叠加层。所以,我无法实现它。

当我尝试这样做时有课:

ProfileClass.kt

class WorkerProfileFragment : BaseFragment() {
companion object {
    fun createWorkerPhotoFragment() = WorkerProfileFragment()
}

override val layoutId: Int?
    get() = R.layout.fragment_profile_worker

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    var imageViewer: ImageViewer? = null
    val imageOverlayView = ImageOverlayView(context)

    val url = "myURL"
    val urls: List<String> = listOf(url)

    imageOverlayView.close_btn.setOnClickListener {
        imageViewer?.onDismiss()
    }
    sdv_photo_worker.setImageURI(url)
    sdv_photo_worker.setOnClickListener {
        imageViewer = ImageViewer.Builder(context, urls)
                .setBackgroundColor(Color.BLACK)
                .setStartPosition(0)
                .allowSwipeToDismiss(false)
                .hideStatusBar(false)
                .setOverlayView(ImageOverlayView(context))
                .show()
    }

}

ImageOverlayView.kt

class ImageOverlayView(context: Context?) : RelativeLayout(context) {

init {
    val view = View.inflate(context, R.layout.view_worker_photo_overlay, this)
    view.findViewById(R.id.close_btn)?.setOnClickListener(closePhotoView(context))
}

fun closePhotoView(context: Context?): OnClickListener? {
    return null
}

}

查看

<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
    android:id="@+id/close_btn"
    android:clickable="true"
    android:layout_marginLeft="16dp"
    android:layout_marginTop="16dp"
    android:src="@drawable/ic_close" />

请帮助..

1 个答案:

答案 0 :(得分:1)

我找到的解决方案:

var imageViewer: ImageViewer? = null

imageViewer = ImageViewer.Builder(context, urls)
                .setBackgroundColor(Color.BLACK)
                .setStartPosition(0)
                .allowSwipeToDismiss(false)
                .hideStatusBar(false)
                .setOverlayView(WorkerPhotoOverlayView(context))
                .setOverlayView(WorkerPhotoOverlayView(context)
                        .apply {
                            this.close_btn.setOnClickListener {
                                imageViewer?.onDismiss()
                            }
                        })
                .show()