检测版本更新App
This commit is contained in:
@@ -39,7 +39,7 @@ android {
|
||||
minSdkVersion 26
|
||||
targetSdkVersion 30
|
||||
versionCode 1
|
||||
versionName "1.0.1"//version 1.0.0-appstore version 1.0.0-xh
|
||||
versionName "Version 1.0.1"//version 1.0.0-appstore version 1.0.0-xh
|
||||
// 添加自定义字段
|
||||
buildConfigField "String", "APP_VERSION_NAME", "\"${versionName}\""
|
||||
buildConfigField "int", "APP_VERSION_CODE", "${versionCode}"
|
||||
|
||||
@@ -19,6 +19,7 @@ import android.view.WindowManager;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
@@ -48,8 +49,10 @@ public class DialogAppUpdate {
|
||||
public static View layoutView;
|
||||
private Dialog mDialog;
|
||||
private Activity mContext;
|
||||
private TextView tvTitle,tvContent,tvConfirm,tvCancel;
|
||||
private TextView tvTitle,tvContent,tvConfirm,tvCancel,tvVersionName;
|
||||
private TextView tvProgressPercent;
|
||||
private RelativeLayout rlUpdateContent;
|
||||
private LinearLayout llProgressContainer,llButton;
|
||||
private ImageView imgClose,imgClear;
|
||||
private String startTime = "";
|
||||
private String endTime = "";
|
||||
@@ -84,7 +87,7 @@ public class DialogAppUpdate {
|
||||
this.mContext = context;
|
||||
this.mIsForceUpdate = isForceUpdate;
|
||||
this.mVersionBean = bean;
|
||||
mDwonLoadUrl = bean.getVersionUrl();
|
||||
mDwonLoadUrl = bean.getDownloadUrl();
|
||||
mDialog = new Dialog(context, R.style.ActionSheetDialogStyle);
|
||||
//填充对话框的布局
|
||||
layoutView = LayoutInflater.from(context).inflate(layoutId, null);
|
||||
@@ -122,29 +125,28 @@ public class DialogAppUpdate {
|
||||
dialogWindow.setAttributes(lp);
|
||||
}
|
||||
tvTitle = layoutView.findViewById(R.id.tv_title);
|
||||
tvVersionName = layoutView.findViewById(R.id.tv_version);
|
||||
tvContent = layoutView.findViewById(R.id.tv_update_content);
|
||||
tvConfirm = layoutView.findViewById(R.id.tv_update);
|
||||
tvCancel = layoutView.findViewById(R.id.tv_cencel);
|
||||
tvCancel = layoutView.findViewById(R.id.tv_cancel);
|
||||
progressBar = layoutView.findViewById(R.id.progress_bar);
|
||||
rlUpdateContent = layoutView.findViewById(R.id.rel_file_content);
|
||||
llProgressContainer = layoutView.findViewById(R.id.ll_progress_container);
|
||||
llButton = layoutView.findViewById(R.id.Linear_button);
|
||||
tvConfirm.setOnClickListener(onclick);
|
||||
tvCancel.setOnClickListener(onclick);
|
||||
if(isForceUpdate){
|
||||
tvCancel.setVisibility(View.GONE);
|
||||
}
|
||||
// 初始化 DownloadManager
|
||||
downloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
|
||||
notificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
tvVersionName.setText(bean.getLatestVersion());
|
||||
// 解析更新说明,支持纯文本和HTML格式
|
||||
String releaseNotes = bean.getReleaseNotes();
|
||||
releaseNotes = releaseNotes.replace("\n", "<br>");
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
tvContent.setText(Html.fromHtml(bean.getVersionDescription(), Html.FROM_HTML_MODE_LEGACY));
|
||||
tvContent.setText(Html.fromHtml(releaseNotes, Html.FROM_HTML_MODE_LEGACY));
|
||||
} else {
|
||||
tvContent.setText(Html.fromHtml(releaseNotes));
|
||||
}
|
||||
String [] desStr = bean.getVersionDescription().split("#");
|
||||
String desLine = "";
|
||||
for(String str : desStr){
|
||||
desLine = desLine + str + "\n";
|
||||
}
|
||||
tvContent.setText(desLine);
|
||||
tvContent.setLineSpacing(0, 1.2f);
|
||||
}
|
||||
|
||||
@@ -165,7 +167,7 @@ public class DialogAppUpdate {
|
||||
}
|
||||
startUpdateApp();
|
||||
break;
|
||||
case R.id.tv_cencel:
|
||||
case R.id.tv_cancel:
|
||||
dismiss();
|
||||
AppConfig.USER_CONFIRM_UPDATE_APP = true;
|
||||
break;
|
||||
@@ -176,8 +178,8 @@ public class DialogAppUpdate {
|
||||
public void startUpdateApp() {
|
||||
//强制更新,不需要隐藏dialog
|
||||
if(mIsForceUpdate){
|
||||
progressBar.setVisibility(View.VISIBLE);
|
||||
rlUpdateContent.setVisibility(View.GONE);
|
||||
llProgressContainer.setVisibility(View.VISIBLE);
|
||||
llButton.setVisibility(View.GONE);
|
||||
progressBar.setMax(100);
|
||||
}else{
|
||||
ToastUtil.showShort(mContext,"可在任务栏查看下载进度");
|
||||
|
||||
@@ -276,7 +276,8 @@ public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, Inde
|
||||
case 302:
|
||||
// 这是一台没有在mqtt中注册的设备,需要通过蓝牙连接配网,(可理解为新设备,走蓝牙,配网)
|
||||
// 先检查蓝牙权限和开启状态
|
||||
pendingDeviceEntity = entity;
|
||||
|
||||
|
||||
checkBluetoothAndProceed();
|
||||
break;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.util.Map;
|
||||
public interface MainContract {
|
||||
interface DataModel{
|
||||
//新版本检测
|
||||
void checkAppVersionCode(JSONObject json, CallBack callBack);
|
||||
void checkAppVersionCode(Map<String,String> map, CallBack callBack);
|
||||
//运势
|
||||
void getYunshiData(Map<String,Object> map, CallBack callBack);
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ public class MainImpl implements MainContract.DataModel{
|
||||
|
||||
/**
|
||||
* 检测新版本
|
||||
* @param jsonObject
|
||||
* @param map
|
||||
* @param callBack
|
||||
*/
|
||||
@Override
|
||||
public void checkAppVersionCode(JSONObject jsonObject, MainContract.CallBack callBack) {
|
||||
public void checkAppVersionCode(Map<String,String> map, MainContract.CallBack callBack) {
|
||||
try {
|
||||
NetWorkManager.getRequest().checkVersionCode(NetWorkManager.getToken(),NetWorkManager.toRequestBody(jsonObject))
|
||||
NetWorkManager.getRequest().checkVersionCode(NetWorkManager.getToken(),map)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.unsubscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ckkj.water.main;
|
||||
|
||||
import com.ckkj.water.BuildConfig;
|
||||
import com.ckkj.water.base.BasePresenter;
|
||||
import com.ckkj.water.main.entity.CheckVersionEntity;
|
||||
|
||||
@@ -20,8 +21,10 @@ public class MainPresenter extends BasePresenter<MainContract.MainView> {
|
||||
* 获取用户信息
|
||||
*/
|
||||
public void checkNewVersion() {
|
||||
JSONObject json = new JSONObject();
|
||||
mainImpl.checkAppVersionCode(json, new MainContract.CallBack<CheckVersionEntity>() {
|
||||
Map<String,String> map = new HashMap<>();
|
||||
map.put("platform","android");
|
||||
map.put("currentVersion", BuildConfig.APP_VERSION_NAME);
|
||||
mainImpl.checkAppVersionCode(map, new MainContract.CallBack<CheckVersionEntity>() {
|
||||
@Override
|
||||
public void success(CheckVersionEntity bean) {
|
||||
if( MainPresenter.this.getView() != null){
|
||||
|
||||
@@ -103,7 +103,7 @@ public class MainActivity extends BaseActivity<MainActivityLayoutBinding, MainPr
|
||||
@Override
|
||||
public void initData(Bundle savedInstanceState) {
|
||||
super.initData(savedInstanceState);
|
||||
// mPresenter.checkNewVersion();
|
||||
mPresenter.checkNewVersion();
|
||||
// 清空Fragment列表,避免状态恢复问题
|
||||
mFragmentList.clear();
|
||||
mFragmentList.add(new IndexFragment());
|
||||
@@ -356,16 +356,16 @@ public class MainActivity extends BaseActivity<MainActivityLayoutBinding, MainPr
|
||||
if(bean == null){
|
||||
return;
|
||||
}
|
||||
if(bean.getVersionCoercion().equals("0")){//不强制
|
||||
if(!bean.isForceUpdate()){//不强制
|
||||
isForceUpdate = false;
|
||||
}else{
|
||||
isForceUpdate = true;
|
||||
}
|
||||
//前期强制更新
|
||||
// isForceUpdate = true;
|
||||
if(bean.getVersionNumber() > versionCode){
|
||||
if(bean.getVersionCode() > versionCode){
|
||||
//App更新dialog
|
||||
mUpdateDialog = new DialogAppUpdate(mContext,R.layout.dialog_app_update,isForceUpdate,bean);
|
||||
mUpdateDialog = new DialogAppUpdate(mContext,R.layout.dialog_app_update_water,isForceUpdate,bean);
|
||||
mUpdateDialog.show();
|
||||
mUpdateDialog.setOnDialogListener(new DialogAppUpdate.DialogListener() {
|
||||
@Override
|
||||
|
||||
@@ -1,41 +1,32 @@
|
||||
package com.ckkj.water.main.entity;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class CheckVersionEntity implements Serializable {
|
||||
|
||||
|
||||
@SerializedName("versionNumber")
|
||||
private int versionNumber;
|
||||
@SerializedName("versionEnd")
|
||||
private String versionEnd;
|
||||
@SerializedName("versionCoercion")
|
||||
private String versionCoercion;
|
||||
@SerializedName("versionDescription")
|
||||
private String versionDescription;
|
||||
@SerializedName("versionName")
|
||||
private String versionName;
|
||||
@SerializedName("versionUrl")
|
||||
private String versionUrl;
|
||||
@SerializedName("versionHide1")
|
||||
private String versionHide1;
|
||||
@SerializedName("versionHide2")
|
||||
private String versionHide2;
|
||||
@SerializedName("versionHide3")
|
||||
private String versionHide3;
|
||||
@SerializedName("versionHide4")
|
||||
private String versionHide4;
|
||||
@SerializedName("versionHide5")
|
||||
private Object versionHide5;
|
||||
@SerializedName("versionHide6")
|
||||
private Object versionHide6;
|
||||
@SerializedName("paipanApiKey")
|
||||
private String paipanApiKey;
|
||||
/**
|
||||
* platform : android
|
||||
* currentVersion : 1.0.1
|
||||
* latestVersion : 1.0.0
|
||||
* versionCode : 1
|
||||
* updateAvailable : true
|
||||
* forceUpdate : false
|
||||
* downloadUrl : null
|
||||
* releaseNotes : null
|
||||
*/
|
||||
|
||||
private String platform;
|
||||
private String currentVersion;
|
||||
private String latestVersion;
|
||||
private int versionCode;
|
||||
private boolean updateAvailable;
|
||||
private boolean forceUpdate;
|
||||
private String downloadUrl;
|
||||
private String releaseNotes;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.ckkj.water.AppConfig;
|
||||
import com.ckkj.water.ConstantUtil;
|
||||
import com.ckkj.water.R;
|
||||
@@ -143,6 +144,13 @@ public class MineCenterFragment extends BaseFragment<MineFragmentLayoutBinding,
|
||||
}else{
|
||||
viewBinding.tvUserAccount.setText(bean.getUser().getPhonenumber());
|
||||
}
|
||||
if(!TextUtils.isEmpty(bean.getUser().getAvatar())){
|
||||
// 刷新头像显示
|
||||
Glide.with(mContext)
|
||||
.load(bean.getUser().getAvatar())
|
||||
.error(mContext.getDrawable(R.mipmap.icon_mine_user_head_defaul))
|
||||
.into(viewBinding.imgAvatar);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -140,7 +140,7 @@ public class MineInfomationActivity extends BaseActivity<MineInformationLayoutBi
|
||||
@Override
|
||||
public void onConfirmClisk(String content) {
|
||||
showLoadingDialog();
|
||||
mPresenter.updateUserInfo(content);
|
||||
mPresenter.updateUserInfo(content,null);
|
||||
mUserBean.getUser().setNickName(content);
|
||||
viewBinding.tvNicknameValue.setText(content);
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public class MineUserInfoBean implements Serializable {
|
||||
private String email;
|
||||
private String phonenumber;
|
||||
private String sex;
|
||||
private Object avatar;
|
||||
private String avatar;
|
||||
private String password;
|
||||
private String status;
|
||||
private String loginIp;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.ckkj.water.mine.mvp;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.ckkj.water.base.BasePresenter;
|
||||
import com.ckkj.water.mine.entity.MineUserInfoBean;
|
||||
import com.ckkj.water.login.mvp.LoginContract;
|
||||
@@ -51,12 +53,18 @@ public class MinePresenter extends BasePresenter<MineContract.MineView> {
|
||||
|
||||
/**
|
||||
* 修改用户信息
|
||||
* @param content
|
||||
* @param nickName
|
||||
* @param avatar
|
||||
*/
|
||||
public void updateUserInfo(String content) {
|
||||
public void updateUserInfo(String nickName,String avatar) {
|
||||
try {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("nickName", content);
|
||||
if(!TextUtils.isEmpty(avatar)){
|
||||
json.put("nickName", nickName);
|
||||
}
|
||||
if(!TextUtils.isEmpty(avatar)){
|
||||
json.put("avatar", avatar);
|
||||
}
|
||||
impl.updateUserInfo(json, new MineContract.CallBack<BaseBean>() {
|
||||
@Override
|
||||
public void success(BaseBean bean) {
|
||||
@@ -142,6 +150,7 @@ public class MinePresenter extends BasePresenter<MineContract.MineView> {
|
||||
public void success(MineUserInfoBean bean) {
|
||||
if (MinePresenter.this.getView() != null) {
|
||||
MinePresenter.this.getView().uploadImageSuccess(bean);
|
||||
updateUserInfo(null,bean.getUrl());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -148,8 +148,8 @@ public interface Request {
|
||||
|
||||
|
||||
|
||||
@POST("mobile/version?end=android")
|
||||
Observable<BaseBean<CheckVersionEntity>> checkVersionCode(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
||||
@GET("app/v1/checkVersion")
|
||||
Observable<BaseBean<CheckVersionEntity>> checkVersionCode(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, String> map);
|
||||
//版本检测更新
|
||||
@POST("mine/api/versionNum")
|
||||
Observable<BaseBean<CheckVersionEntity>> getVersionCheck(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
|
||||
|
||||
170
app/src/main/res/layout/dialog_app_update_water.xml
Normal file
170
app/src/main/res/layout/dialog_app_update_water.xml
Normal file
@@ -0,0 +1,170 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:background="@android:color/transparent"
|
||||
android:gravity="center_horizontal">
|
||||
|
||||
<!-- 白色内容卡片(底层) -->
|
||||
<LinearLayout
|
||||
android:id="@+id/linear_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_30"
|
||||
android:layout_marginTop="@dimen/dp_75"
|
||||
android:paddingTop="@dimen/dp_75"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_horizontal"
|
||||
android:background="@drawable/shape_white_coeners_8">
|
||||
|
||||
<!-- 标题区域 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="@dimen/sp_18"
|
||||
android:textColor="@color/color_2E2E2E"
|
||||
android:textStyle="bold"
|
||||
android:text="发现新版本"/>
|
||||
|
||||
<!-- 版本号 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_version"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_4"
|
||||
android:textSize="@dimen/sp_13"
|
||||
android:textColor="@color/color_ff999999"
|
||||
android:text="V2.0.0"/>
|
||||
|
||||
<!-- 更新内容区域 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_update_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:layout_marginLeft="@dimen/dp_28"
|
||||
android:layout_marginRight="@dimen/dp_28">
|
||||
|
||||
<!-- 更新内容行1 -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="top">
|
||||
<TextView
|
||||
android:id="@+id/tv_update_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="@dimen/sp_14"
|
||||
android:textColor="@color/color_2E2E2E"
|
||||
android:lineSpacingExtra="@dimen/dp_4"
|
||||
android:text="1.优化布局\n2.修复已知bug,优化用户体验\n3.测试内容测试内容测试内容测试内容测试内容"/>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 进度条区域(下载时显示) -->
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_progress_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="@dimen/dp_20"
|
||||
android:layout_marginBottom="@dimen/dp_30"
|
||||
android:layout_marginLeft="@dimen/dp_28"
|
||||
android:layout_marginRight="@dimen/dp_28">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical">
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:textSize="@dimen/sp_13"
|
||||
android:textColor="@color/color_2E2E2E"
|
||||
android:text="正在下载..."/>
|
||||
<TextView
|
||||
android:id="@+id/tv_progress_percent"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="@dimen/sp_13"
|
||||
android:textColor="@color/color_ff999999"
|
||||
android:text="0%"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar"
|
||||
style="?android:attr/progressBarStyleHorizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_5"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
android:progressDrawable="@drawable/update_app_progress_bg"
|
||||
android:max="100"
|
||||
android:progress="0"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 按钮区域 -->
|
||||
<LinearLayout
|
||||
android:id="@+id/Linear_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginTop="@dimen/dp_24"
|
||||
android:layout_marginLeft="@dimen/dp_28"
|
||||
android:layout_marginRight="@dimen/dp_28"
|
||||
android:layout_marginBottom="@dimen/dp_20"
|
||||
android:visibility="visible">
|
||||
|
||||
<!-- 立即升级按钮 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_update"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/shape_green_button_bg"
|
||||
android:textSize="@dimen/sp_17"
|
||||
android:textColor="@color/white"
|
||||
android:text="立即升级"
|
||||
android:gravity="center"
|
||||
android:paddingTop="@dimen/dp_12"
|
||||
android:paddingBottom="@dimen/dp_12"/>
|
||||
|
||||
<!-- 暂不升级按钮 -->
|
||||
<TextView
|
||||
android:id="@+id/tv_cancel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="@dimen/sp_17"
|
||||
android:textColor="@color/color_ff999999"
|
||||
android:text="暂不升级"
|
||||
android:gravity="center"
|
||||
android:paddingTop="@dimen/dp_12"
|
||||
android:paddingBottom="@dimen/dp_12"
|
||||
android:layout_marginTop="@dimen/dp_8"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!-- 顶部图片区域(上层,覆盖在白色卡片上方) -->
|
||||
<FrameLayout
|
||||
android:id="@+id/frame_layout"
|
||||
android:layout_width="@dimen/dp_150"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal">
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@mipmap/img_update_res"
|
||||
android:layout_gravity="center_horizontal"/>
|
||||
</FrameLayout>
|
||||
|
||||
</FrameLayout>
|
||||
@@ -24,7 +24,8 @@
|
||||
android:layout_width="@dimen/dp_60"
|
||||
android:layout_height="@dimen/dp_60"
|
||||
app:riv_corner_radius="@dimen/dp_30"
|
||||
android:src="@mipmap/img_pay_weixin"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@mipmap/icon_mine_user_head_defaul"
|
||||
android:layout_marginLeft="20dp"/>
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
android:layout_width="@dimen/dp_112"
|
||||
android:layout_height="@dimen/dp_112"
|
||||
app:riv_corner_radius="@dimen/dp_120"
|
||||
android:src="@mipmap/img_pay_weixin"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@mipmap/icon_mine_user_head_defaul"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_centerHorizontal="true"/>
|
||||
<androidx.cardview.widget.CardView
|
||||
|
||||
BIN
app/src/main/res/mipmap-xhdpi/img_update_res.png
Normal file
BIN
app/src/main/res/mipmap-xhdpi/img_update_res.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 62 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/img_update_res.png
Normal file
BIN
app/src/main/res/mipmap-xxhdpi/img_update_res.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 124 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/img_update_res.png
Normal file
BIN
app/src/main/res/mipmap-xxxhdpi/img_update_res.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 207 KiB |
Reference in New Issue
Block a user