lmw
2024-11-12 610a2aedd505bb4d8fb29f0bc6741ced74218bb0
app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt
@@ -1,11 +1,18 @@
package com.sinata.xqmuse.ui.mine
import android.Manifest
import android.graphics.Bitmap
import android.os.Bundle
import android.os.Environment
import android.provider.MediaStore
import android.util.Log
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import android.webkit.WebViewClient
import androidx.core.os.bundleOf
import androidx.core.view.drawToBitmap
import cn.sinata.xldutils.activity.BaseActivity
import cn.sinata.xldutils.utils.BitmapUtils
import com.github.zackratos.ultimatebar.UltimateBar
import com.share.utils.ShareUtils
import com.sinata.xqmuse.R
@@ -13,13 +20,23 @@
import com.sinata.xqmuse.network.Apis
import com.sinata.xqmuse.network.HttpManager
import com.sinata.xqmuse.network.request
import com.sinata.xqmuse.utils.Const
import com.sinata.xqmuse.utils.interfaces.StringCallback
import com.tbruyelle.rxpermissions2.RxPermissions
import com.umeng.socialize.bean.SHARE_MEDIA
import com.ypx.imagepicker.utils.PBitmapUtils
import kotlinx.android.synthetic.main.activity_share.*
import kotlinx.android.synthetic.main.layout_share_img.*
import kotlinx.android.synthetic.main.layout_share_img.view.*
import org.jetbrains.anko.backgroundColor
import org.jetbrains.anko.toast
import java.io.File
import java.io.FileOutputStream
class ShareActivity:BaseActivity() {
    private val userId by lazy { intent.getStringExtra("userId") }
    private var qrcode = ""
    private var poster = ""
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
@@ -53,7 +70,26 @@
                    }else if (rst == "circle"){
                        ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN_CIRCLE,"分享内容","分享标题",Apis.SHARE_APP.format(userId),null,"")
                    }else{
                        RxPermissions(this@ShareActivity).request(Manifest.permission.WRITE_EXTERNAL_STORAGE).subscribe {
                            if (it)
                                try {
                                    toast("图片生成中…")
                                    val copyPath = PBitmapUtils.getPickerFileDirectory(this@ShareActivity).absolutePath  + "/" + System.currentTimeMillis() + ".png"
                                    val file = File(copyPath)
                                    if (!file.exists()) {
                                        file.createNewFile()
                                    }
                                    val fors = FileOutputStream(file)
                                    layout_share.drawToBitmap()?.compress(Bitmap.CompressFormat.PNG, 0, fors)
                                    fors.flush()
                                    fors.close()
                                    MediaStore.Images.Media.insertImage(this@ShareActivity.contentResolver, file.absolutePath, copyPath, null);
                                    toast("保存成功")
                                } catch (e: Exception) {
                                    Log.e(Const.Tag,e?.message?:"")
                                    toast("保存失败")
                                }
                        }
                    }
                }
            }
@@ -63,6 +99,8 @@
    private fun getShareInfo(){
        HttpManager.shareInfo().request(this){_,data->
            this.qrcode = data?.qrCode?:""
            this.poster = data?.poster?:""
            data?.apply {
                iv_code.setImageURI(qrCode)
                val sHead =
@@ -75,6 +113,9 @@
                    null
                )
                iv_share.setImageURI(poster)
                //分享view
                iv_poster.setImageURI(poster)
                iv_share_code.setImageURI(qrCode)
            }
        }
    }