From 718f31c92e2029d05260810435a2c70cef6e6ce5 Mon Sep 17 00:00:00 2001 From: lmw <125975490@qq.com> Date: 星期四, 24 四月 2025 10:45:55 +0800 Subject: [PATCH] save --- app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 46 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt b/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt index f4de509..a848b27 100644 --- a/app/src/main/java/com/sinata/xqmuse/ui/mine/ShareActivity.kt +++ b/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) @@ -49,11 +66,32 @@ shareDialog.callback = object :StringCallback{ override fun onResult(rst: String) { if (rst == "wx"){ - ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN,"分享内容","分享标题",Apis.SHARE_APP.format(userId),null,"") + ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN,Const.SHARE.SHARE_CONTENT,Const.SHARE.SHARE_TITLE,Apis.SHARE_APP.format(userId),null,"") }else if (rst == "circle"){ - ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN_CIRCLE,"分享内容","分享标题",Apis.SHARE_APP.format(userId),null,"") + ShareUtils.share(this@ShareActivity,SHARE_MEDIA.WEIXIN_CIRCLE,Const.SHARE.SHARE_CONTENT,Const.SHARE.SHARE_TITLE,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("保存失败") + } + else + toast("缺少文件存储权限") + } } } } @@ -63,6 +101,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 +115,9 @@ null ) iv_share.setImageURI(poster) + //分享view + iv_poster.setImageURI(poster) + iv_share_code.setImageURI(qrCode) } } } -- Gitblit v1.7.1