Commit e9a2b800 authored by jianglx's avatar jianglx

修改弹框

parent fd743833
......@@ -120,8 +120,6 @@ public class MainActivity extends BaseActivity<CommonPresenter> {
getEffectiveTime();
getActivityPopup();
checkVersion();
}
@Override
......
package com.rv.share;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.CardView;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.ruiwenliu.wrapper.base.BaseBean;
import com.ruiwenliu.wrapper.base.BaseStatusActivity;
......@@ -107,11 +113,16 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> {
if (id == R.id.tv_back_title) {
finish();
} else if (id == R.id.btn_share) {
mPresenter.showShareDialog(llContent, rvWebView);
preShare();
}
}
private RvWebView.WebViewListener listener = new RvWebView.WebViewListener() {
@Override
public void share(String url, String imgUrl, String title, String circleTitle, String desc) {
}
@Override
public void share(String url, String title, String desc) {
}
......@@ -123,4 +134,35 @@ public class BillActivity extends BaseStatusActivity<BillPresenter> {
};
/**
* 预备下载 进行 6.0权限检查
*/
private void preShare() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
mPresenter.showShareDialog(llContent, rvWebView);
} else {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
mPresenter.showShareDialog(llContent, rvWebView);
} else {//申请权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1001);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 1001:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
mPresenter.showShareDialog(llContent, rvWebView);
;
} else {
Toast.makeText(getApplicationContext(), "授权失败,无法分享海报", Toast.LENGTH_SHORT).show();
}
break;
}
}
}
package com.rv.share;
import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.CardView;
import android.text.TextUtils;
import android.view.View;
......@@ -12,6 +18,7 @@ import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.base.utils.ui.image.round.RoundImageView;
import com.ruiwenliu.wrapper.SPConstance;
......@@ -87,15 +94,63 @@ public class ReativeBillActivity extends BaseStatusActivity<ReativeBillPresenter
}
@OnClick({R2.id.btn_save_bill, R2.id.btn_share,R2.id.tv_back_title})
@OnClick({R2.id.btn_save_bill, R2.id.btn_share, R2.id.tv_back_title})
public void onViewClicked(View view) {
int id = view.getId();
if (id == R.id.tv_back_title) {
finish();
} else if (id == R.id.btn_save_bill) {
mPresenter.saveBill(llContent);
preShare(0, 1001);
} else if (id == R.id.btn_share) {
mPresenter.shareCircle(llContent);
preShare(1, 1002);
}
}
/**
* 预备下载 进行 6.0权限检查
*/
private void preShare(int type, int requestCode) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
if (type == 0) {
mPresenter.saveBill(llContent);
} else {
mPresenter.share(llContent);
}
} else {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
if (type == 0) {
mPresenter.saveBill(llContent);
} else {
mPresenter.share(llContent);
}
} else {//申请权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, requestCode);
}
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 1001:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
mPresenter.saveBill(llContent);
} else {
Toast.makeText(getApplicationContext(), "授权失败,无法分享海报", Toast.LENGTH_SHORT).show();
}
break;
case 1002:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
mPresenter.share(llContent);
} else {
Toast.makeText(getApplicationContext(), "授权失败,无法分享海报", Toast.LENGTH_SHORT).show();
}
break;
}
}
}
......@@ -91,9 +91,14 @@ public class WebViewActivity extends BaseStatusActivity<WebViewPresenter> {
}
private RvWebView.WebViewListener listener = new RvWebView.WebViewListener() {
@Override
public void share(String url, String imgUrl, String title, String circleTitle, String desc) {
mPresenter.showShareDialog(url, imgUrl, title, circleTitle, desc);
}
@Override
public void share(String url, String title, String desc) {
mPresenter.showShareDialog(url, title, desc);
mPresenter.showShareDialog(url, null, title, null, desc);
}
@Override
......
......@@ -5,13 +5,18 @@ import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.support.v7.widget.CardView;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;
import com.base.utils.ui.datetime.picker.Utils;
import com.base.utils.ui.datetime.selector.util.TextUtil;
import com.rv.home.rv.module.basic.presenter.CommonPresenter;
import com.rv.share.ReativeBillActivity;
import com.rv.share.utils.ShareUtils;
import com.rv.share.utils.StorageUtils;
import com.rv.share.view.ShareChoiceDialog;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
......@@ -23,7 +28,11 @@ import java.io.IOException;
public class ReativeBillPresenter extends CommonPresenter {
private ShareChoiceDialog dialog = null;
private ShareAction shareAction = null;
private View view = null;
private Bitmap bitmap = null;
private UMImage image = null;
/*****
* 保存海报
......@@ -34,7 +43,7 @@ public class ReativeBillPresenter extends CommonPresenter {
Bitmap bitmap = ShareUtils.viewConversionBitmap(view);
File file = null;
if (bitmap != null) {
file = ShareUtils.saveBitmapFile(getPresenterContext(),bitmap);
file = ShareUtils.saveBitmapFile(getPresenterContext(), bitmap);
}
if (file != null) {
Toast.makeText(getPresenterContext(), "海报保存在" + file.getAbsolutePath(), Toast.LENGTH_LONG).show();
......@@ -42,25 +51,21 @@ public class ReativeBillPresenter extends CommonPresenter {
}
}
/****
* 分享到朋友圈
* @param view
/******
* 分享
*/
public void shareCircle(View view) {
if (view != null) {
Bitmap bitmap = ShareUtils.viewConversionBitmap(view);
File file = null;
if (bitmap != null) {
file = ShareUtils.saveBitmapFile(getPresenterContext(), bitmap);
}
if (file != null) {
UMImage image = new UMImage(getPresenterContext(), file);//bitmap文件
image.compressStyle = UMImage.CompressStyle.SCALE;//大小压缩,默认为大小压缩,适合普通很大的图
image.compressStyle = UMImage.CompressStyle.QUALITY;//质量压缩,适合长图的分享
image.compressFormat = Bitmap.CompressFormat.PNG;
share(SHARE_MEDIA.WEIXIN_CIRCLE, image, "");
}
public void share(View view) {
this.view = view;
if (dialog == null) {
dialog = new ShareChoiceDialog.Builder(getPresenterContext())
.setShareListener(myListener)
.setWxVisiable(true)
.setWxCVisiable(true)
.setQQVisiable(true)
.create();
}
dialog.show();
}
/******
......@@ -77,4 +82,71 @@ public class ReativeBillPresenter extends CommonPresenter {
.withMedia(var2);//分享内容
shareAction.share();
}
private ShareChoiceDialog.ShareListener myListener = new ShareChoiceDialog.ShareListener() {
private void shareDeal() {
if (view != null && bitmap == null) {
bitmap = ShareUtils.viewConversionBitmap(view);
}
File file = null;
if (bitmap != null) {
file = ShareUtils.saveBitmapFile(getPresenterContext(), bitmap);
}
if (file != null) {
image = new UMImage(getPresenterContext(), file);//bitmap文件
image.compressStyle = UMImage.CompressStyle.SCALE;//大小压缩,默认为大小压缩,适合普通很大的图
image.compressStyle = UMImage.CompressStyle.QUALITY;//质量压缩,适合长图的分享
image.compressFormat = Bitmap.CompressFormat.PNG;
}
}
@Override
public void copyShare() {
}
@Override
public void wxShare() {
if (image == null) {
shareDeal();
}
if (image != null) {
share(SHARE_MEDIA.WEIXIN, image, "");
}
}
@Override
public void wxCShare() {
if (image == null) {
shareDeal();
}
if (image != null) {
share(SHARE_MEDIA.WEIXIN_CIRCLE, image, "");
}
}
@Override
public void qqShare() {
}
@Override
public void billShare() {
}
@Override
public void close() {
}
};
// @Override
// public void detachView() {
// super.detachView();
// if (bitmap != null) {
// bitmap.recycle();
// }
// }
}
......@@ -32,14 +32,18 @@ public class WebViewPresenter extends CommonPresenter {
private String mUrl = null;
private String mTitle = null;
private String mDescript = null;
private String mImgUrl;
private String mCircleTitle;
private RvWebView webView;
public void setWebView(RvWebView webView) {
this.webView = webView;
}
public void showShareDialog(String url, String title, String descript) {
public void showShareDialog(String url, String imgUrl, String title, String circleTitle, String descript) {
this.mUrl = url;
this.mImgUrl = imgUrl;
this.mCircleTitle = circleTitle;
this.mTitle = title;
this.mDescript = descript;
if (dialog == null) {
......@@ -62,8 +66,12 @@ public class WebViewPresenter extends CommonPresenter {
if (shareAction == null) {
shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener);
}
UMImage image = new UMImage(getPresenterContext(), R.drawable.icon_share);
UMImage image;
if (!TextUtils.isEmpty(mImgUrl)) {
image = new UMImage(getPresenterContext(), mImgUrl);
} else {
image = new UMImage(getPresenterContext(), R.drawable.icon_share);
}
UMWeb web = new UMWeb(mUrl);
web.setTitle(mTitle);//标题
web.setThumb(image); //缩略图
......@@ -82,9 +90,15 @@ public class WebViewPresenter extends CommonPresenter {
if (shareAction == null) {
shareAction = new ShareAction((Activity) getPresenterContext()).setCallback(shareListener);
}
UMImage image = new UMImage(getPresenterContext(), R.drawable.icon_share);
UMImage image;
if (!TextUtils.isEmpty(mImgUrl)) {
image = new UMImage(getPresenterContext(), mImgUrl);
} else {
image = new UMImage(getPresenterContext(), R.drawable.icon_share);
}
UMWeb web = new UMWeb(mUrl);
web.setTitle(mTitle);//标题
web.setTitle(TextUtils.isEmpty(mCircleTitle) ? mTitle : mCircleTitle);//标题
web.setThumb(image); //缩略图
shareAction.setPlatform(SHARE_MEDIA.WEIXIN_CIRCLE)//传入平台
.withMedia(web);
......@@ -128,9 +142,9 @@ public class WebViewPresenter extends CommonPresenter {
@Override
public void onResult(SHARE_MEDIA share_media) {
if (webView != null) {
webView.loadUrl("javascript:shareSuccess()");
}
// if (webView != null) {
// webView.loadUrl("javascript:shareSuccess()");
// }
}
@Override
......
package com.rv.share.view;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.rv.component.utils.DisplayUtil;
import com.rv.share.R;
public class BillDialog extends Dialog {
public BillDialog(@NonNull Context context) {
super(context);
}
public BillDialog(Context context, int themeResId) {
super(context, themeResId);
}
public static class Builder {
private Context mContext;
private ImageView imgClose;
private View.OnClickListener mListener;
private String content;
private LinearLayout llWebview;
public Builder(Context context, View.OnClickListener listener) {
mContext = context;
this.mListener = listener;
}
public Builder(Context context) {
mContext = context;
}
public Builder setContent(String content) {
this.content = content;
return this;
}
public Builder show() {
final BillDialog dialog = create();
dialog.show();
return this;
}
/**
* 创建定制的对话框
*/
public BillDialog create() {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final BillDialog dialog = new BillDialog(mContext, R.style.DialogActivityTheme);
// 获取对话框的布局
View layout = inflater.inflate(R.layout.dialog_bill, null);
// 为对话框添加布局和设置大小
dialog.addContentView(layout, new WindowManager.LayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT));
this.llWebview = layout.findViewById(R.id.ll_webview);
RvWebView view = new RvWebView(mContext, listener);
llWebview.addView(view);
view.loadUrl("https://www.baidu.com");
this.imgClose = layout.findViewById(R.id.img_close);
this.imgClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dialog.dismiss();
}
});
//默认不能点击对话框其他区域退出 和按返回键退出
dialog.setCancelable(true);
dialog.setContentView(layout);
return dialog;
}
private RvWebView.WebViewListener listener = new RvWebView.WebViewListener() {
@Override
public void share(String url, String title, String desc) {
}
@Override
public void finish() {
}
};
}
}
......@@ -163,6 +163,26 @@ public class RvWebView extends WebView {
}
}
/*******
* @param url
* 跳转url
* @param imgUrl
* 活动图片url
* @param title
* 标题
* @param titleCircle
* 朋友圈标题
* @param desc
* 描述
*/
@JavascriptInterface
public void share(String url, String imgUrl, String title, String titleCircle, String desc) {
if (listener != null) {
listener.share(url, imgUrl, title, titleCircle, desc);
}
}
@JavascriptInterface
public void toMyWallet() {
......@@ -170,7 +190,7 @@ public class RvWebView extends WebView {
@JavascriptInterface
public String getCode() {
String code = Cookie.getStringValue(getContext(), "my_code", "");
String code = Cookie.getStringValue(getContext(), SPConstance.USER_JSON_CODE, "");
return code;
}
......@@ -183,6 +203,8 @@ public class RvWebView extends WebView {
public interface WebViewListener {
void share(String url, String imgUrl, String title, String circleTitle, String desc);
void share(String url, String title, String desc);
void finish();
......
......@@ -84,7 +84,7 @@ public class ShareChoiceDialog implements View.OnClickListener {
tvBill.setOnClickListener(this);
tvCancle.setOnClickListener(this);
dialog.setContentView(view);
dialog.setCancelable(false);
dialog.setCancelable(true);
}
public void show() {
......
......@@ -29,116 +29,121 @@
android:layout_height="match_parent"
android:background="#55eeeeee">
<LinearLayout
android:id="@+id/ll_content"
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/size_10"
android:layout_height="wrap_content"
android:layout_marginLeft="13dp"
android:layout_marginTop="@dimen/size_15"
android:layout_marginRight="@dimen/size_10"
android:layout_marginBottom="@dimen/size_70"
android:gravity="center">
android:layout_marginRight="13dp"
android:layout_marginBottom="@dimen/size_70">
<android.support.v7.widget.CardView
android:id="@+id/ll_bill_content"
<LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:cardCornerRadius="5dp">
android:layout_height="match_parent"
android:gravity="center">
<LinearLayout
<android.support.v7.widget.CardView
android:id="@+id/ll_bill_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:layout_width="match_parent"
android:layout_height="@dimen/size_200"
android:scaleType="fitXY"
android:src="@drawable/bg_bill" />
android:layout_gravity="center"
app:cardCornerRadius="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_20"
android:layout_marginBottom="@dimen/size_15"
android:gravity="center_vertical"
android:orientation="horizontal">
android:orientation="vertical">
<com.base.utils.ui.image.round.RoundImageView
android:id="@+id/ring_header"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50"
android:layout_marginLeft="@dimen/size_10" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/bg_bill" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/size_5"
android:orientation="vertical">
android:layout_marginTop="@dimen/size_20"
android:layout_marginBottom="@dimen/size_15"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="155****5918"
android:textColor="#000000"
android:textSize="@dimen/sp_16" />
<TextView
<com.base.utils.ui.image.round.RoundImageView
android:id="@+id/ring_header"
android:layout_width="@dimen/size_50"
android:layout_height="@dimen/size_50"
android:layout_marginLeft="@dimen/size_10" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:text="邀请你一起参加"
android:textColor="@color/text_Gray"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginRight="@dimen/size_10"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:orientation="vertical">
<ImageView
android:id="@+id/img_qrcode"
android:layout_width="@dimen/size_100"
android:layout_height="@dimen/size_100"
android:src="@drawable/icon_share_wx" />
<TextView
android:layout_width="@dimen/size_100"
android:layout_marginLeft="@dimen/size_5"
android:orientation="vertical">
<TextView
android:id="@+id/tv_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="155****5918"
android:textColor="@color/colorMain"
android:textSize="@dimen/text_18" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:text="邀请你一起参加"
android:textColor="@color/text_Gray"
android:textSize="@dimen/sp_12" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_8"
android:gravity="center"
android:text="长按领奖励"
android:textColor="#000000"
android:textSize="13sp" />
android:layout_gravity="right"
android:layout_marginRight="17dp"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:orientation="vertical">
<ImageView
android:id="@+id/img_qrcode"
android:layout_width="@dimen/size_80"
android:layout_height="@dimen/size_80"
android:src="@drawable/icon_share_wx" />
<TextView
android:layout_width="@dimen/size_80"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_8"
android:gravity="center"
android:text="长按领奖励"
android:textColor="@color/colorMain"
android:textSize="@dimen/sp_12" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<include layout="@layout/common_line" />
<include layout="@layout/common_line" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/size_10"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:src="@drawable/icon_reative_bill" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/size_10"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:src="@drawable/icon_reative_bill" />
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
......@@ -170,7 +175,7 @@
android:layout_weight="1"
android:background="@drawable/bg_bill_share"
android:gravity="center"
android:text="分享朋友圈"
android:text="马上分享"
android:textColor="@color/white"
android:textSize="@dimen/sp_16" />
......
......@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FCE2A8"
android:background="#ffe5d0"
android:gravity="center_horizontal"
android:orientation="vertical"
......
......@@ -6,15 +6,15 @@
android:orientation="vertical">
<FrameLayout
android:layout_width="@dimen/dialog_width"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="@dimen/dialog_min_height"
android:orientation="vertical">
<ImageView
android:id="@+id/img_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_width="@dimen/dialog_act_width"
android:layout_height="@dimen/dialog_act_height"
android:minHeight="@dimen/dialog_min_height"
android:scaleType="fitXY" />
......
......@@ -2,4 +2,6 @@
<resources>
<dimen name="dialog_width">150dp</dimen>
<dimen name="dialog_min_height">150dp</dimen>
<dimen name="dialog_act_width">150dp</dimen>
<dimen name="dialog_act_height">200dp</dimen>
</resources>
......@@ -2,4 +2,6 @@
<resources>
<dimen name="dialog_width">200dp</dimen>
<dimen name="dialog_min_height">200dp</dimen>
<dimen name="dialog_act_width">200dp</dimen>
<dimen name="dialog_act_height">266.67dp</dimen>
</resources>
......@@ -2,4 +2,7 @@
<resources>
<dimen name="dialog_width">300dp</dimen>
<dimen name="dialog_min_height">300dp</dimen>
<dimen name="dialog_act_width">300dp</dimen>
<dimen name="dialog_act_height">400dp</dimen>
</resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment