146 lines
5.2 KiB
Java
146 lines
5.2 KiB
Java
package com.gh.gamecenter;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.graphics.Bitmap;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.StrictMode;
|
|
import android.text.Html;
|
|
import android.text.TextUtils;
|
|
import android.view.View;
|
|
import android.widget.ImageView;
|
|
import android.widget.LinearLayout;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.core.content.ContextCompat;
|
|
|
|
import com.facebook.drawee.view.SimpleDraweeView;
|
|
import com.gh.common.util.MessageShareUtils;
|
|
import com.gh.common.util.QRCodeUtils;
|
|
import com.gh.gamecenter.common.base.activity.ToolBarActivity;
|
|
import com.gh.gamecenter.common.constant.EntranceConsts;
|
|
import com.gh.gamecenter.common.utils.ImageUtils;
|
|
import com.gh.gamecenter.feature.entity.ConcernEntity;
|
|
|
|
import java.io.File;
|
|
|
|
/**
|
|
* Created by khy on 2016/11/7.
|
|
* 分享卡片
|
|
*/
|
|
public class ShareCardActivity extends ToolBarActivity {
|
|
|
|
TextView mShareContentTv;
|
|
TextView mShareGameNameTv;
|
|
SimpleDraweeView mShareGameIconDv;
|
|
ImageView mShareQrCodeDv;
|
|
LinearLayout mShareScreenshotLl;
|
|
View mActionbar;
|
|
LinearLayout mShareBottomLl;
|
|
String gameName;
|
|
String gameIconUrl;
|
|
String shareContent;
|
|
String picName;
|
|
String newsId;
|
|
private Handler handler = new Handler();
|
|
|
|
@NonNull
|
|
public static Intent getIntent(Context context, ConcernEntity concernEntity, String shareContent) {
|
|
Intent intent = new Intent(context, ShareCardActivity.class);
|
|
Bundle bundle = new Bundle();
|
|
bundle.putString(EntranceConsts.KEY_GAMENAME, concernEntity.getGameName());
|
|
bundle.putString(EntranceConsts.KEY_GAME_ICON_URL, concernEntity.getGameIcon());
|
|
bundle.putString(EntranceConsts.KEY_SHARECONTENT, shareContent);
|
|
if (concernEntity.getLink() == null) {
|
|
bundle.putString(EntranceConsts.KEY_NEWSID, concernEntity.getId());
|
|
}
|
|
intent.putExtras(bundle);
|
|
intent.putExtra(EntranceConsts.KEY_ENTRANCE, "(资讯:关注[2-4])");
|
|
return intent;
|
|
}
|
|
|
|
@Override
|
|
protected int getLayoutId() {
|
|
return R.layout.activity_sharecard;
|
|
}
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
mShareContentTv = findViewById(R.id.sharecard_content);
|
|
mShareGameNameTv = findViewById(R.id.sharecard_game_name);
|
|
mShareGameIconDv = findViewById(R.id.sharecard_game_icon);
|
|
mShareQrCodeDv = findViewById(R.id.sharecard_qrcode);
|
|
mShareScreenshotLl = findViewById(R.id.sharecard_screenshot);
|
|
mActionbar = findViewById(R.id.normal_toolbar_container);
|
|
mShareBottomLl = findViewById(R.id.sharecard_bottom);
|
|
|
|
Bundle extras = getIntent().getExtras();
|
|
gameName = extras.getString(EntranceConsts.KEY_GAMENAME);
|
|
gameIconUrl = extras.getString(EntranceConsts.KEY_GAME_ICON_URL);
|
|
shareContent = extras.getString(EntranceConsts.KEY_SHARECONTENT);
|
|
newsId = extras.getString(EntranceConsts.KEY_NEWSID);
|
|
|
|
picName = "shareImg.jpg";
|
|
|
|
setNavigationTitle(getString(R.string.title_share_card));
|
|
|
|
//修改沉浸栏以及ActionBar 颜色
|
|
mActionbar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), android.R.color.black));
|
|
|
|
mShareGameNameTv.setText(gameName);
|
|
mShareContentTv.setText(Html.fromHtml(shareContent));
|
|
// mShareGameIconDv.setImageURI(gameIconUrl);
|
|
ImageUtils.display(mShareGameIconDv, gameIconUrl);
|
|
|
|
// 延迟操作,等待截图部分绘制完成
|
|
handler.postDelayed(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
mShareScreenshotLl.setDrawingCacheEnabled(true);
|
|
mShareScreenshotLl.buildDrawingCache();
|
|
Bitmap drawingCache = mShareScreenshotLl.getDrawingCache();
|
|
saveBitmap(drawingCache);
|
|
MessageShareUtils.getInstance(ShareCardActivity.this).showShareWindows(ShareCardActivity.this, mShareBottomLl, drawingCache, picName, 0);
|
|
}
|
|
}, 200);
|
|
|
|
String qrBody;
|
|
if (!TextUtils.isEmpty(newsId)) {
|
|
qrBody = "https://www.ghzs666.com/article/" + newsId + ".html?source=appshare200";
|
|
} else {
|
|
qrBody = "https://www.ghzs.com/?source=appshare200";
|
|
}
|
|
QRCodeUtils.setQRCode(this, qrBody, mShareQrCodeDv);
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
|
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
|
|
StrictMode.setVmPolicy(builder.build());
|
|
builder.detectFileUriExposure();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void onDestroy() {
|
|
super.onDestroy();
|
|
handler.removeCallbacksAndMessages(null);
|
|
}
|
|
|
|
public void saveBitmap(Bitmap bm) {
|
|
File file = new File(MessageShareUtils.getSaveBitmapBasePath(this));
|
|
if (!file.isDirectory()) {
|
|
file.delete();
|
|
file.mkdirs();
|
|
}
|
|
if (!file.exists()) {
|
|
file.mkdirs();
|
|
}
|
|
MessageShareUtils.getInstance(ShareCardActivity.this).writeBitmap(file.getPath(), picName, bm, false);
|
|
}
|
|
|
|
}
|