Parcourir la source

邀请好友中分享图片修改,可以保存二维码图片

zengjiebin il y a 8 ans
Parent
commit
d02ce5c578

+ 0 - 24
app/src/main/java/com/kfzs/duanduan/fragment/FgtPersonalCenter.java

@@ -1,55 +1,31 @@
 package com.kfzs.duanduan.fragment;
 
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.Intent;
-import android.net.Uri;
 import android.os.Bundle;
-import android.os.Environment;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.Window;
-import android.view.WindowManager;
 import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.FutureTarget;
-import com.bumptech.glide.request.RequestOptions;
-import com.bumptech.glide.request.target.Target;
 import com.kfzs.duanduan.BaseCompatFragment;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.FriendAndAwardEntity;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.model.entity.WebviewEntity;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.AppUtil;
 import com.sheep.gamegroup.util.FastJsonUtils;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MyDbManager;
-import com.sheep.gamegroup.util.StringUtils;
-import com.sheep.gamegroup.util.UMConfigUtils;
 import com.sheep.gamegroup.util.ViewUtil;
-import com.sheep.gamegroup.view.activity.AskGetMoneyAct;
 import com.sheep.gamegroup.view.activity.PersonalCenterAct;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.utils.ClassFileHelper;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import org.xutils.ex.DbException;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.util.Date;
-import java.util.concurrent.ExecutionException;
-
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;

+ 49 - 0
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -29,6 +29,55 @@ import java.io.IOException;
  */
 public class ViewUtil {
 
+    public static void showQR(final Activity activity, String link) {
+        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+        View view = View.inflate(activity, R.layout.x_ask_qr_dialog, null);
+        builder.setView(view);
+        final AlertDialog dialog = builder.create();
+        ImageView iv = view.findViewById(R.id.iv_close);
+        final ImageView iv_qr = view.findViewById(R.id.iv_qr);
+        View save_pic = view.findViewById(R.id.save_pic);
+        ImageView iv_qr_small = view.findViewById(R.id.iv_qr_small);
+        Glide.with(activity)
+                .load(AppUtil.getQRLink(link, 800))
+                .apply(new RequestOptions().override(800, 800))
+                .into(iv_qr);
+        Glide.with(activity)
+                .load(R.drawable.icon)
+                .apply(new RequestOptions().override(G.WIDTH/5))
+                .into(iv_qr_small);
+        dialog.show();
+        Window window = dialog.getWindow();
+        if(window != null) {
+            android.view.WindowManager.LayoutParams p = window.getAttributes();
+            p.height = G.WIDTH+activity.getResources().getDimensionPixelSize(R.dimen.content_padding_80);
+            p.width = G.WIDTH;
+            dialog.getWindow().setAttributes(p);     //设置生效
+        }
+        iv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                dialog.dismiss();
+            }
+        });
+        save_pic.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+
+                File file = ViewUtil.saveImage((View) iv_qr.getParent(), ClassFileHelper.DIR, System.currentTimeMillis()+".jpg");
+                if(file != null) {
+                    Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+                    Uri uri = Uri.fromFile(file);
+                    intent.setData(uri);
+                    activity.sendBroadcast(intent); // 发送广播通知相册
+                } else {
+                    ViewUtil.sysSaveImage((View) iv_qr.getParent(), "小绵羊", "二维码分享");
+                }
+                G.showToast("已保存");
+            }
+        });
+
+    }
     /**
      * 分享对话框
      * @param activity

+ 2 - 3
app/src/main/java/com/sheep/gamegroup/view/activity/AskGetMoneyAct.java

@@ -17,6 +17,7 @@ import com.sheep.gamegroup.model.entity.FriendAndAwardEntity;
 import com.sheep.gamegroup.presenter.AskGetMoneyContract;
 import com.sheep.gamegroup.presenter.AskGetMoneyPresenter;
 import com.sheep.gamegroup.util.StringUtils;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -33,8 +34,6 @@ import javax.inject.Inject;
 import butterknife.BindView;
 import butterknife.OnClick;
 
-import static com.sheep.gamegroup.view.activity.PersionInfoAct.showQR;
-
 /**
  * Created by Administrator on 2018/3/19.
  */
@@ -209,7 +208,7 @@ public class AskGetMoneyAct extends BaseUMActivity implements UMShareListener, A
                 shareToQQ();
                 break;
             case R.id.rl_qr:
-                showQR(AskGetMoneyAct.this, mEntity.getShare_link());
+                ViewUtil.showQR(AskGetMoneyAct.this, mEntity.getShare_link());
                 break;
             case R.id.rl_link:
                 shareToLink();

+ 3 - 69
app/src/main/java/com/sheep/gamegroup/view/activity/PersionInfoAct.java

@@ -1,11 +1,7 @@
 package com.sheep.gamegroup.view.activity;
 
-import android.app.Activity;
-import android.app.AlertDialog;
 import android.content.Intent;
 import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
 import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -13,15 +9,16 @@ import android.widget.TextView;
 import com.alibaba.fastjson.JSONObject;
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.request.RequestOptions;
+import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.gamegroup.event.ImageHeadChange;
 import com.sheep.gamegroup.event.UserNameChange;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserEntity;
 import com.sheep.gamegroup.util.AppUtil;
 import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
 import com.sheep.jiuyan.samllsheep.utils.G;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
@@ -123,69 +120,6 @@ public class PersionInfoAct extends AbsChooseImageActivity {
     }
 
 
-    public static void showQR(Activity activity, String link) {
-        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
-        View view = View.inflate(activity, R.layout.x_ask_qr_dialog, null);
-        builder.setView(view);
-        final AlertDialog dialog = builder.create();
-        ImageView iv = view.findViewById(R.id.iv_close);
-        ImageView iv_qr = view.findViewById(R.id.iv_qr);
-        ImageView iv_qr_small = view.findViewById(R.id.iv_qr_small);
-        Glide.with(activity)
-                .load(AppUtil.getQRLink(link, 800))
-                .apply(new RequestOptions().override(800, 800))
-                .into(iv_qr);
-        Glide.with(activity)
-                .load("http://cdngame.kuaifazs.com/icon.png")
-                .apply(new RequestOptions().override(G.WIDTH/5))
-                .into(iv_qr_small);
-        dialog.show();
-        Window window = dialog.getWindow();
-        if(window != null) {
-            android.view.WindowManager.LayoutParams p = window.getAttributes();
-            p.height = G.WIDTH;
-            p.width = G.WIDTH;
-            dialog.getWindow().setAttributes(p);     //设置生效
-        }
-        iv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                dialog.dismiss();
-            }
-        });
-
-
-    }
-
-
-    private void showHead() {
-        AlertDialog.Builder builder = new AlertDialog.Builder(this);
-        View view = View.inflate(this, R.layout.x_ask_qr_dialog, null);
-        builder.setView(view);
-        final AlertDialog dialog = builder.create();
-        ImageView iv = view.findViewById(R.id.iv_close);
-        ImageView iv_qr = view.findViewById(R.id.iv_qr);
-        ViewGroup.LayoutParams params = iv_qr.getLayoutParams();
-        params.height = G.WIDTH - 60;
-        params.width = G.HEIGHT / 2 - 20;
-        iv_qr.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
-        iv_qr.setLayoutParams(params);
-        Glide.with(PersionInfoAct.this)
-                .load(mEntity.getAvatar())
-                .apply(new RequestOptions().placeholder(R.mipmap.x_ic_def_head))
-                .into(iv_qr);
-        dialog.show();
-        iv.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                dialog.dismiss();
-            }
-        });
-
-
-    }
-
-
     @OnClick({R.id.layout_more1, R.id.rl_qr, R.id.rl_head})
     public void onClick(View view) {
         switch (view.getId()) {
@@ -195,7 +129,7 @@ public class PersionInfoAct extends AbsChooseImageActivity {
                 startActivity(i);
                 break;
             case R.id.rl_qr:
-                showQR(PersionInfoAct.this, mEntity.getShare_link());
+                ViewUtil.showQR(PersionInfoAct.this, mEntity.getShare_link());
                 break;
             case R.id.rl_head:
                 showChooseDialog();

+ 8 - 0
app/src/main/res/layout/x_ask_qr_dialog.xml

@@ -33,5 +33,13 @@
          />
 
     </RelativeLayout>
+    <TextView
+        android:id="@+id/save_pic"
+        style="@style/style_button"
+        android:layout_marginBottom="20dp"
+        android:layout_marginLeft="100dp"
+        android:layout_marginRight="100dp"
+        android:layout_marginTop="20dp"
+        android:text="保存二维码至手机" />
 
 </LinearLayout>

+ 3 - 5
app/src/main/res/layout/x_recommend_dialog.xml

@@ -102,18 +102,16 @@
 
 
         <RelativeLayout
-            android:layout_width="wrap_content"
+            android:layout_width="180dp"
             android:layout_height="180dp"
             android:layout_gravity="center_horizontal"
-            android:layout_marginLeft="@dimen/content_padding_20"
-            android:layout_marginRight="@dimen/content_padding_20"
             android:layout_marginTop="5dp"
             >
 
             <ImageView
                 android:id="@+id/iv_qr"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
                 android:layout_centerInParent="true"
                 android:src="@drawable/loading" />