|
|
@@ -0,0 +1,510 @@
|
|
|
+package com.sheep.gamegroup.view.activity;
|
|
|
+
|
|
|
+import android.annotation.SuppressLint;
|
|
|
+import android.app.Activity;
|
|
|
+import android.content.Context;
|
|
|
+import android.graphics.Bitmap;
|
|
|
+import android.graphics.BitmapFactory;
|
|
|
+import android.graphics.Canvas;
|
|
|
+import android.graphics.Matrix;
|
|
|
+import android.graphics.Paint;
|
|
|
+import android.os.Bundle;
|
|
|
+import android.os.Environment;
|
|
|
+import android.os.Handler;
|
|
|
+import android.os.Message;
|
|
|
+import android.support.annotation.Nullable;
|
|
|
+import android.support.v7.app.AppCompatActivity;
|
|
|
+import android.support.v7.widget.GridLayoutManager;
|
|
|
+import android.support.v7.widget.LinearLayoutManager;
|
|
|
+import android.support.v7.widget.OrientationHelper;
|
|
|
+import android.support.v7.widget.RecyclerView;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.util.Log;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.ImageView;
|
|
|
+import android.widget.TextView;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.google.gson.Gson;
|
|
|
+import com.google.zxing.BarcodeFormat;
|
|
|
+import com.google.zxing.EncodeHintType;
|
|
|
+import com.google.zxing.WriterException;
|
|
|
+import com.google.zxing.common.BitMatrix;
|
|
|
+import com.google.zxing.qrcode.QRCodeWriter;
|
|
|
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
|
|
|
+import com.kfzs.duanduan.cardview.CardScaleHelper;
|
|
|
+import com.sheep.gamegroup.helper.DownloadUtil;
|
|
|
+import com.sheep.gamegroup.helper.ScalableCardHelper;
|
|
|
+import com.sheep.gamegroup.helper.ZXingHelper;
|
|
|
+import com.sheep.gamegroup.model.entity.BaseMessage;
|
|
|
+import com.sheep.gamegroup.model.entity.DialogConfig;
|
|
|
+import com.sheep.gamegroup.model.entity.FriendAndAwardEntity;
|
|
|
+import com.sheep.gamegroup.model.entity.PictureInvitationEntity;
|
|
|
+import com.sheep.gamegroup.model.entity.UserEntity;
|
|
|
+import com.sheep.gamegroup.model.util.SheepSubscriber;
|
|
|
+import com.sheep.gamegroup.util.CommonUtil;
|
|
|
+import com.sheep.gamegroup.util.DataUtil;
|
|
|
+import com.sheep.gamegroup.util.FastJsonUtils;
|
|
|
+import com.sheep.gamegroup.util.GlideImageLoader;
|
|
|
+import com.sheep.gamegroup.util.ListUtil;
|
|
|
+import com.sheep.gamegroup.util.LogUtil;
|
|
|
+import com.sheep.gamegroup.util.StringUtils;
|
|
|
+import com.sheep.gamegroup.util.ViewHolder;
|
|
|
+import com.sheep.gamegroup.util.ViewUtil;
|
|
|
+import com.sheep.gamegroup.view.adapter.AdbCommonRecycler;
|
|
|
+import com.sheep.gamegroup.view.adapter.MyAdapter;
|
|
|
+import com.sheep.gamegroup.view.dialog.DialogShare;
|
|
|
+import com.sheep.jiuyan.samllsheep.BuildConfig;
|
|
|
+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 com.umeng.socialize.ShareAction;
|
|
|
+import com.umeng.socialize.bean.SHARE_MEDIA;
|
|
|
+import com.umeng.socialize.media.UMImage;
|
|
|
+import com.umeng.socialize.media.UMWeb;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Hashtable;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+import butterknife.BindView;
|
|
|
+import butterknife.ButterKnife;
|
|
|
+import rx.android.schedulers.AndroidSchedulers;
|
|
|
+import rx.functions.Action1;
|
|
|
+import rx.schedulers.Schedulers;
|
|
|
+
|
|
|
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.LINK_SHARE;
|
|
|
+import static com.sheep.gamegroup.util.UMConfigUtils.Event.QR_COPY;
|
|
|
+import static com.sheep.gamegroup.util.ViewUtil.getNetImgByName;
|
|
|
+
|
|
|
+/**
|
|
|
+ * created on:2018/9/4 on 15:09
|
|
|
+ * created by: YSL
|
|
|
+ * 描述:
|
|
|
+ */
|
|
|
+public class InvitationActivity extends AppCompatActivity implements ScalableCardHelper.OnPageChangeListener {
|
|
|
+ @BindView(R.id.ask_share_list)
|
|
|
+ RecyclerView ask_share_list;
|
|
|
+ @BindView(R.id.recyclerView)
|
|
|
+ RecyclerView mRecyclerView;
|
|
|
+ @BindView(R.id.blurView)
|
|
|
+ ImageView mBlurView;
|
|
|
+ @BindView(R.id.img_baseactivity_title)
|
|
|
+ ImageView ivBack;
|
|
|
+ @BindView(R.id.txt_baseactivity_title)
|
|
|
+ TextView tvTitle;
|
|
|
+ private List<Integer> mList = new ArrayList<>();
|
|
|
+ private CardScaleHelper mCardScaleHelper = null;
|
|
|
+ private Runnable mBlurRunnable;
|
|
|
+ private int mLastPos = -1;//滑动当前的位置
|
|
|
+ private List<String> localPathList = new ArrayList<>();
|
|
|
+ private List<String> RxPathList = new ArrayList<>();
|
|
|
+ private String localPicturePath = Environment.getDataDirectory().getAbsolutePath() + "/pic/+pic";
|
|
|
+ private String localRxPath = Environment.getDataDirectory().getAbsolutePath() + "/rx/+rx";
|
|
|
+
|
|
|
+ GridLayoutManager gridLayoutManager;
|
|
|
+ UserEntity userEntity = DataUtil.getInstance().getUserEntity();
|
|
|
+ private FriendAndAwardEntity mEntity;
|
|
|
+ private String url;
|
|
|
+ private String description;
|
|
|
+ private Bitmap mBitmap;
|
|
|
+ private List<PictureInvitationEntity> mPictureList = new ArrayList<>();
|
|
|
+ private List<File> mPictureFileList = new ArrayList<>();
|
|
|
+ private List<File> mRxFileList = new ArrayList<>();
|
|
|
+ String localPath = "";
|
|
|
+ String localRx = "";
|
|
|
+ private int position = 0;
|
|
|
+ private List<Bitmap> listBitmap = new ArrayList<>();
|
|
|
+ private List<Bitmap> listBitmap1 = new ArrayList<>();
|
|
|
+ private List<Bitmap> listBitmap2 = new ArrayList<>();
|
|
|
+ private MyAdapter adapter;
|
|
|
+ private int size = 0;
|
|
|
+ private View view = null;
|
|
|
+
|
|
|
+ @Override
|
|
|
+
|
|
|
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
+ super.onCreate(savedInstanceState);
|
|
|
+ setContentView(R.layout.activity_invitation);
|
|
|
+ ButterKnife.bind(this);
|
|
|
+ initView();
|
|
|
+ initData();
|
|
|
+ // initPicture();
|
|
|
+ cerateAdapter(listBitmap1, this);
|
|
|
+ getPicetureList();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initView() {
|
|
|
+ tvTitle.setText("邀请赚钱");
|
|
|
+ ivBack.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ InvitationActivity.this.finish();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param list Bitmap集合
|
|
|
+ * @param context
|
|
|
+ */
|
|
|
+ private void cerateAdapter(List<Bitmap> list, Context context) {
|
|
|
+ adapter = new MyAdapter(context, list, listBitmap2);
|
|
|
+ LinearLayoutManager layoutManager = new LinearLayoutManager(context);
|
|
|
+ layoutManager.setOrientation(OrientationHelper.HORIZONTAL);
|
|
|
+ mRecyclerView.setLayoutManager(layoutManager);
|
|
|
+ // recyclerView.addItemDecoration(new InvitationPictureAdapter.SpacesItemDecoration(15));
|
|
|
+ mRecyclerView.setAdapter(adapter);
|
|
|
+ ScalableCardHelper cardHelper = new ScalableCardHelper(this);
|
|
|
+ cardHelper.attachToRecyclerView(mRecyclerView);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void init(final String url, final String description) {
|
|
|
+ gridLayoutManager = new GridLayoutManager(this, 5);
|
|
|
+ ask_share_list.setLayoutManager(gridLayoutManager);
|
|
|
+ final List<String> list = ListUtil.emptyList();
|
|
|
+ list.add(DialogShare.FACE_TO_FACE);
|
|
|
+ list.add(DialogShare.WX);
|
|
|
+ list.add(DialogShare.QQ);
|
|
|
+ list.add(DialogShare.WEIXIN_CIRCLE);
|
|
|
+ list.add(DialogShare.COPY_SHARE_LINK);
|
|
|
+ final List<String> imgList = ListUtil.emptyList();
|
|
|
+ imgList.add("share_face_to_face");
|
|
|
+ imgList.add("share_wx");
|
|
|
+ imgList.add("share_qq");
|
|
|
+ imgList.add("share_weixin_circle");
|
|
|
+ imgList.add("share_copy_share_link");
|
|
|
+ final List<String> nameList = ListUtil.emptyList();
|
|
|
+ nameList.add("面对面");
|
|
|
+ nameList.add("微信");
|
|
|
+ nameList.add("QQ好友");
|
|
|
+ nameList.add("朋友圈");
|
|
|
+ nameList.add("复制链接");
|
|
|
+ AdbCommonRecycler<String> adapter = new AdbCommonRecycler<String>(this, list) {
|
|
|
+ @Override
|
|
|
+ public int getViewIdByType(int type) {
|
|
|
+ return R.layout.ask_to_share_item;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void convert(ViewHolder holder, final String item) {
|
|
|
+ View itemView = holder.itemView;
|
|
|
+ if (item == null)
|
|
|
+ return;
|
|
|
+ ImageView ask_to_share_item_img = itemView.findViewById(R.id.ask_to_share_item_img);
|
|
|
+ TextView ask_to_share_item_name = itemView.findViewById(R.id.ask_to_share_item_name);
|
|
|
+ final int position = holder.getAdapterPosition();
|
|
|
+ GlideImageLoader.setImage(ask_to_share_item_img, getNetImgByName(imgList.get(position)));
|
|
|
+ ask_to_share_item_name.setText(nameList.get(position));
|
|
|
+ itemView.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ if (position == 1 || position == 2) {
|
|
|
+ popShare(InvitationActivity.this, url, item, description, mBitmap);
|
|
|
+ } else {
|
|
|
+ popShare(InvitationActivity.this, url, item, description, null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ };
|
|
|
+ ask_share_list.setAdapter(adapter);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分享 url type 拼接
|
|
|
+ */
|
|
|
+ public String jointString(String url, @DialogShare.SHARE_TYPE String type) {
|
|
|
+ if (url.contains("&type="))
|
|
|
+ return url;
|
|
|
+ switch (type) {
|
|
|
+ case "qq":
|
|
|
+ return url + "&type=2";
|
|
|
+ case "wx":
|
|
|
+ return url + "&type=1";
|
|
|
+ default:
|
|
|
+ return url + "&type=4";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分享
|
|
|
+ *
|
|
|
+ * @param activity
|
|
|
+ * @param url
|
|
|
+ * @param type qq wx all
|
|
|
+ * @param description
|
|
|
+ */
|
|
|
+ public void popShare(Activity activity, final String url, @DialogShare.SHARE_TYPE String type, String description, Bitmap bitmap) {
|
|
|
+ if (activity == null || TextUtils.isEmpty(type) || TextUtils.isEmpty(url)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ final String realUrl = jointString(url, type);
|
|
|
+ SHARE_MEDIA share_media;
|
|
|
+ switch (type) {
|
|
|
+ case DialogShare.ALL:
|
|
|
+ ViewUtil.newInstance().showShare(activity, realUrl, description);
|
|
|
+ return;
|
|
|
+ case DialogShare.FACE_TO_FACE:
|
|
|
+ ViewUtil.showQR(activity, realUrl);
|
|
|
+ return;
|
|
|
+ case DialogShare.COPY_SHARE_LINK:
|
|
|
+ LINK_SHARE.onEvent();
|
|
|
+ ViewUtil.showMsgDialog(activity, new DialogConfig().setTitle("分享链接").setMsg(realUrl)
|
|
|
+ .setMsgMore("他人通过该链接加入小绵羊即可成为你的好友").setMsgMoreColor(R.color.txt_black_9e9c9c)
|
|
|
+ .setBtnLeftText("复制链接").setBtnLeftOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View view) {
|
|
|
+ QR_COPY.onEvent();
|
|
|
+ StringUtils.CopyText(realUrl);
|
|
|
+ G.showToast("复制链接成功");
|
|
|
+ }
|
|
|
+ }));
|
|
|
+ return;
|
|
|
+ case DialogShare.QQ:
|
|
|
+ share_media = SHARE_MEDIA.QQ;
|
|
|
+ break;
|
|
|
+ case DialogShare.WX:
|
|
|
+ share_media = SHARE_MEDIA.WEIXIN;
|
|
|
+ break;
|
|
|
+ case DialogShare.WEIXIN_CIRCLE:
|
|
|
+ default:
|
|
|
+ share_media = SHARE_MEDIA.WEIXIN_CIRCLE;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ UMImage umImage = null;
|
|
|
+
|
|
|
+ if (type == DialogShare.QQ || type == DialogShare.WX) {
|
|
|
+ umImage = new UMImage(activity, bitmap);
|
|
|
+ } else {
|
|
|
+ umImage = new UMImage(activity, R.mipmap.icon);
|
|
|
+ }
|
|
|
+ UMWeb umWeb = new UMWeb(realUrl);
|
|
|
+ umWeb.setTitle(activity.getResources().getString(R.string.app_name));
|
|
|
+ umWeb.setThumb(umImage);
|
|
|
+ umWeb.setDescription(TextUtils.isEmpty(description) ? activity.getResources().getString(R.string.app_name) : description);
|
|
|
+ if (type == DialogShare.QQ || type == DialogShare.WX) {
|
|
|
+ new ShareAction(activity)
|
|
|
+ .setPlatform(share_media)
|
|
|
+ .withMedia(umImage)
|
|
|
+ .setCallback(new CommonUtil.UMShareListener())
|
|
|
+ .share();
|
|
|
+ } else {
|
|
|
+ new ShareAction(activity)
|
|
|
+ .setPlatform(share_media)
|
|
|
+ .withMedia(umWeb)
|
|
|
+ .setCallback(new CommonUtil.UMShareListener())
|
|
|
+ .share();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void initData() {
|
|
|
+ ViewUtil.newInstance().showProgress(this);
|
|
|
+ SheepApp.getInstance().getNetComponent().getApiService().FriendCountAndAward()
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
|
|
|
+ @Override
|
|
|
+ public void onError(BaseMessage baseMessage) {
|
|
|
+ ViewUtil.newInstance().hideProgress(InvitationActivity.this);
|
|
|
+ if (BuildConfig.DEBUG)
|
|
|
+ G.showToast(baseMessage);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNext(BaseMessage baseMessage) {
|
|
|
+ if (baseMessage != null) {
|
|
|
+ mEntity = FastJsonUtils.toBean(JSONObject.toJSONString(baseMessage.getData()), FriendAndAwardEntity.class);
|
|
|
+ description = mEntity.getShare_desc();
|
|
|
+ ViewUtil.newInstance().hideProgress(InvitationActivity.this);
|
|
|
+ getmEntity();
|
|
|
+ runOnUiThread(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ /* tvSize.setText(mEntity.getFriend_count() + "");
|
|
|
+ tvMoney.setText(mEntity.getAward());*/
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ /* ViewUtil.newInstance().hideProgress(activity);*/
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getmEntity() {
|
|
|
+ CommonUtil.getInstance().updateUserInfo(new Action1<UserEntity>() {
|
|
|
+ @Override
|
|
|
+ public void call(UserEntity result) {
|
|
|
+ if (result != null) {
|
|
|
+ userEntity = result;
|
|
|
+ String audit_total_audit = String.format(getResources().getString(R.string.my_invitation_str), userEntity.getInvitation_code());
|
|
|
+ /* my_invitation_tv.setText(audit_total_audit);*/
|
|
|
+ url = userEntity.getShareLink();
|
|
|
+ init(url, description);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onPageSelected(int position) {
|
|
|
+ mBitmap=getViewBitmap(adapter.getView());
|
|
|
+ Log.i("aaaa", "当前位置" + position);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 来获取邀请图片,
|
|
|
+ */
|
|
|
+ private void getPicetureList() {
|
|
|
+ ArrayList<PictureInvitationEntity> list = new ArrayList<>();
|
|
|
+ SheepApp
|
|
|
+ .getInstance()
|
|
|
+ .getNetComponent()
|
|
|
+ .getApiService()
|
|
|
+ .getSharePicture()
|
|
|
+ .subscribeOn(Schedulers.io())
|
|
|
+ .observeOn(AndroidSchedulers.mainThread())
|
|
|
+ .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.mContext) {
|
|
|
+ @Override
|
|
|
+ public void onNext(BaseMessage baseMessage) {
|
|
|
+ LogUtil.logI("onNext__getPicetureList--" + new Gson().toJson(baseMessage));
|
|
|
+ mPictureList.addAll(baseMessage.getDataList(PictureInvitationEntity.class));
|
|
|
+ downloadPictures();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onError(BaseMessage baseMessage) {
|
|
|
+ LogUtil.logI("onError__getPicetureList--" + new Gson().toJson(baseMessage));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param url ,,图片地址
|
|
|
+ * @return /storage/emulated/0/sheep/aaa
|
|
|
+ */
|
|
|
+ private String getSavePath(String url) {
|
|
|
+ return Environment.getExternalStorageDirectory() + "/sheep/" + url.substring(url.lastIndexOf("/") + 1);
|
|
|
+ }
|
|
|
+ private void downloadPictures() {
|
|
|
+ for (int i = 0; i < mPictureList.size(); i++) {
|
|
|
+ position = i;
|
|
|
+ DownloadUtil.get().download(mPictureList.get(position).getPicture(), "sheep", new DownloadUtil.OnDownloadListener() {
|
|
|
+ @Override
|
|
|
+ public void onDownloadSuccess() {
|
|
|
+ Log.i("aaaa", "下载成功");
|
|
|
+ if (position == mPictureList.size()-1) {
|
|
|
+ Log.i("aaaa", "下载成功"+"---"+size+"-----"+mPictureList.size());
|
|
|
+ createBitmapList(position);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDownloading(int progress) {
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDownloadFailed() {
|
|
|
+ Log.i("aaaa", "下载失败");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void createBitmapList(int y) {
|
|
|
+ for (int i = 0; i < mPictureList.size(); i++) {
|
|
|
+ listBitmap1.add(BitmapFactory.decodeFile(getSavePath(mPictureList.get(i).getPicture())));
|
|
|
+ Bitmap logo = BitmapFactory.decodeResource(getResources(), R.mipmap.sheep_logo);
|
|
|
+ Bitmap bitmapx = ZXingHelper.createQRCodeWithLogo(mPictureList.get(y).getLink(), logo);
|
|
|
+ listBitmap2.add(bitmapx);
|
|
|
+ }
|
|
|
+ handler.sendEmptyMessage(1);
|
|
|
+ }
|
|
|
+
|
|
|
+ @SuppressLint("HandlerLeak")
|
|
|
+ private Handler handler = new Handler() {
|
|
|
+ @Override
|
|
|
+ public void handleMessage(Message msg) {
|
|
|
+ super.handleMessage(msg);
|
|
|
+ switch (msg.what) {
|
|
|
+ case 1:
|
|
|
+ /* for (int i = 0; i < size; i++) {
|
|
|
+ listBitmap.add(mergeBitmap(listBitmap1.get(i), listBitmap2.get(i)));
|
|
|
+ }*/
|
|
|
+ adapter.notifyDataSetChanged();
|
|
|
+
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param addViewContent
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Bitmap getViewBitmap(View addViewContent) {
|
|
|
+ if (addViewContent==null){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ addViewContent.setDrawingCacheEnabled(true);
|
|
|
+ addViewContent.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
|
|
|
+ addViewContent.layout(0, 0, addViewContent.getMeasuredWidth(), addViewContent.getMeasuredHeight());
|
|
|
+ addViewContent.buildDrawingCache();
|
|
|
+ Bitmap cacheBitmap = addViewContent.getDrawingCache();
|
|
|
+ Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);
|
|
|
+ return bitmap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 合成图片
|
|
|
+ * @param firstBitmap
|
|
|
+ * @param secondBitmap
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private Bitmap mergeBitmap(Bitmap firstBitmap, Bitmap secondBitmap) {
|
|
|
+ Bitmap bitmap = Bitmap.createBitmap(firstBitmap.getWidth(), firstBitmap.getHeight(), firstBitmap.getConfig());
|
|
|
+ Canvas canvas = new Canvas(bitmap);
|
|
|
+ float w = firstBitmap.getWidth();
|
|
|
+ float h = firstBitmap.getHeight();
|
|
|
+ Matrix matrix = new Matrix();
|
|
|
+ //确定secondBitmap大小比例
|
|
|
+ matrix.setScale(secondBitmap.getWidth(), h / secondBitmap.getHeight());
|
|
|
+ canvas.drawBitmap(firstBitmap, new Matrix(), null);
|
|
|
+ canvas.drawBitmap(zoomImage(secondBitmap, 50, 50), 320, 320, null);
|
|
|
+ LogUtil.logI("bitmap----first---" + firstBitmap.getWidth() + "--" + firstBitmap.getHeight());
|
|
|
+ LogUtil.logI("bitmap----secound---" + secondBitmap.getWidth() + "--" + secondBitmap.getHeight());
|
|
|
+ return bitmap;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static Bitmap zoomImage(Bitmap bgimage, double newWidth, double newHeight) {
|
|
|
+ // 获取这个图片的宽和高
|
|
|
+ float width = bgimage.getWidth();
|
|
|
+ float height = bgimage.getHeight();
|
|
|
+ // 创建操作图片用的matrix对象
|
|
|
+ Matrix matrix = new Matrix();
|
|
|
+ // 计算宽高缩放率
|
|
|
+ float scaleWidth = ((float) newWidth) / width;
|
|
|
+ float scaleHeight = ((float) newHeight) / height;
|
|
|
+ // 缩放图片动作
|
|
|
+ matrix.postScale(scaleWidth, scaleHeight);
|
|
|
+ Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
|
|
|
+ (int) height, matrix, true);
|
|
|
+ return bitmap;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|