Commit ce972108 authored by fengruiyu's avatar fengruiyu

Merge branch 'dev_1.0.1' of http://gitlab.mints-id.com/android/android_street into dev_1.1.0

 Conflicts:
	app/src/main/java/com/mints/street/main/home/HomeFragment.kt
parents c29a8e87 9e568b02
......@@ -5,7 +5,6 @@ import android.graphics.Paint
import android.view.View
import com.alibaba.android.vlayout.LayoutHelper
import com.alibaba.android.vlayout.layout.GridLayoutHelper
import com.alibaba.android.vlayout.layout.LinearLayoutHelper
import com.fry.base.adapter.AbstractVLayoutBaseAdapter
import com.fry.base.adapter.BindingViewHolder
import com.fry.base.binding.setMargin
......@@ -13,71 +12,50 @@ import com.mints.street.R
import com.mints.street.bean.VipBean
import com.mints.street.databinding.ItemGridPaymentAdpaterBinding
import me.goldze.mvvmhabit.utils.AppUtils
import me.goldze.mvvmhabit.utils.RxUtils
class GridPaymentAdapter(val context: Context, val list: List<VipBean.ListBean>) :
class GridPaymentAdapter(val context: Context, val list: List<VipBean.ListBean?>?) :
AbstractVLayoutBaseAdapter<ItemGridPaymentAdpaterBinding,
List<VipBean.ListBean>>(context, list, 3) {
private var datalist: List<VipBean.ListBean>? = list
private var mposition: Int = 0//设置首次进来默认选中第一个
List<VipBean.ListBean?>?>(context, list, 3) {
private var pid:String? = null
override fun onBindViewHolder(holder: BindingViewHolder<ItemGridPaymentAdpaterBinding>, position: Int) {
holder.binding.tvOldprice.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
// var a = holder.binding.bg.layoutParams
//设置 view边距
holder.binding.bg.setMargin(AppUtils.dp2Px(context, 10F), 0, AppUtils.dp2Px(context, 10F),
AppUtils.dp2Px(context, 10F), null, null, null)
//设置 view背景样式
if (mposition == position) {
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
} else {
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment)
}
//设置默认选中
if (holder.adapterPosition == mposition) {//如果当前的view是第一个设置默认背景,并且是第一次设置背景
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
}
//添加 套餐推荐内容
datalist?.let {
val databean = it[position]
// 设置点击事件
holder.itemView.setOnClickListener {
//设置当前段中view脚标
mposition = holder.adapterPosition
list?.apply {
if (list[position]?.isSelect == true) {
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment_down)
pid = list[position]?.pid
}else{
holder.binding.bg.setBackgroundResource(R.drawable.shape_bg_payment)
}
holder.binding.tvDays.text = list[position]?.title
holder.binding.tvOldprice.text = "原价¥${list[position]?.oldPrice}"
holder.binding.tvPrice.text = "¥${list[position]?.price}"
holder.binding.ivHot.visibility = if (list[position]?.activityType == 0) View.GONE else View.VISIBLE
RxUtils.onMultiClick(holder.itemView){
if (list[position]?.isSelect == true) return@onMultiClick
list.forEach {
it?.isSelect = false
}
list[position]?.isSelect = true
notifyDataSetChanged()
}
// holder.binding.tvDays.text = "${databean.days}天"
holder.binding.tvDays.text = databean.title
holder.binding.tvOldprice.text = "原价¥${databean.oldPrice}"
holder.binding.tvPrice.text = "¥${databean.price}"
holder.binding.ivHot.visibility = if (databean.activityType == 0) View.GONE else View.VISIBLE
}
}
override fun getItemCount() = list?.size?:0
override fun getItemCount(): Int {
return if (datalist == null) {
0
} else {
datalist!!.size
}
fun getPid():String?{
return pid
}
override fun getLayoutId(viewType: Int) = R.layout.item_grid_payment_adpater
fun getPosition() = mposition
override fun onCreateLayoutHelper(): LayoutHelper {
val hp: GridLayoutHelper = GridLayoutHelper(3)
hp.setAutoExpand(false)
return hp
}
}
}
\ No newline at end of file
......@@ -21,7 +21,7 @@ import java.text.DecimalFormat
class ItemHotViewAdapter(val context: Context, val dialog: BottomSheetDialog?, var list: List<HotViewBean.Dataslist>?,
val viewModel: HomeViewModel, val mCurrentLat: Double,
val mCurrentLon: Double, val onHotItemClick: HotViewDialog.OnHotItemClick?=null) :
val mCurrentLon: Double, val onHotItemClick: HotViewDialog.OnHotItemClick? = null) :
AbstractVLayoutBaseAdapter<ItemHotViewAdapterBinding, List<HotViewBean.Dataslist>?>(
context, list, 1
) {
......@@ -36,21 +36,17 @@ class ItemHotViewAdapter(val context: Context, val dialog: BottomSheetDialog?, v
//设置名称
holder.binding.viewname.text = name
//设置距离
var distance:Double=getDistance(LatLng(lat!!.toDouble(), lng!!.toDouble()),LatLng(mCurrentLat, mCurrentLon))
holder.binding.tvDistance.text = "距离${DecimalFormat("0.00").format(distance/1000).toString()}km"
var distance: Double = getDistance(LatLng(lat!!.toDouble(), lng!!.toDouble()), LatLng(mCurrentLat, mCurrentLon))
holder.binding.tvDistance.text = "距离${DecimalFormat("0.00").format(distance / 1000).toString()}km"
//设置景点简介
holder.binding.tvDescribe.text = desc
//设置点击事件
RxUtils.onMultiClick(holder.itemView) {
//判断是否当前是否是会员,
if (!UserManager.INSTANCE.userIsLogin()&&!UserManager.INSTANCE.getVipFlag()) {
dialog?.dismiss()
//否-跳转到开通vip界面
startActivity(OpenvipActivity::class.java)
} else {
dialog?.dismiss()
//是会员都是登陆状态则继续正确跳转,否则跳转开通vip
if (UserManager.INSTANCE.getVipFlag())
onHotItemClick?.onItemClick(position, list?.get(position))
}
else startActivity(OpenvipActivity::class.java)
dialog?.dismiss()
}
}
......
......@@ -48,6 +48,11 @@ interface MainApi {
@POST("api/saveTerminalInfo")
fun saveTerminalInfo(@Body vo: @JvmSuppressWildcards Map<String, Any>): Observable<Response<BaseResponse<Any>>>
/**
*是否显示继续支付弹窗
*/
@POST("na/backVipDialogTip")
fun isbackvipdialogtip(@Body vo: @JvmSuppressWildcards Map<String, Any>): Observable<Response<BaseResponse<IsBackVipBean>>>
/**
* 开通vip
*/
......@@ -64,7 +69,7 @@ interface MainApi {
* 获取支付参数
*/
@POST("api/getVipPayParams")
fun getVipPayParams(@Body vo:@JvmSuppressWildcards Map<String,Any>):Observable<Response<BaseResponse<WxPayParamBean>>>
fun getVipPayParams(@Body vo:@JvmSuppressWildcards Map<String,Any?>):Observable<Response<BaseResponse<WxPayParamBean>>>
/**
* 支付成功
......
package com.mints.street.bean
import java.io.Serializable
class IsBackVipBean : Serializable {
val isPopup: Int? = null
}
\ No newline at end of file
......@@ -14,6 +14,7 @@ class VipBean : Serializable {
var activityType: Int = 0 // 0
var oldPrice: Double = 0.0 // 138
var pid: String = ""// 1
var isSelect:Boolean=false
}
}
......@@ -14,7 +14,6 @@ import com.mints.street.utils.BackInputUtil
import com.mints.street.widget.dialog.DialogUtils
import com.permissionx.guolindev.PermissionX
import com.permissionx.guolindev.callback.RequestCallback
import kotlinx.android.synthetic.main.activity_bindmobile.*
import kotlinx.android.synthetic.main.activity_login.*
import kotlinx.android.synthetic.main.include_header.*
import me.goldze.mvvmhabit.utils.AppUtils
......@@ -26,9 +25,9 @@ import me.goldze.mvvmhabit.utils.ToastUtils
class LoginActivity : BaseActivity<ActivityLoginBinding, LoginViewModel>(), View.OnClickListener {
private val userManager by lazy { UserManager.INSTANCE }
override fun getStatusBarHeightView(): View? {
return binding.tvName
}
// override fun getStatusBarHeightView(): View? {
// return binding.tvName
// }
override fun initContentView(savedInstanceState: Bundle?) = R.layout.activity_login
......
......@@ -22,7 +22,6 @@ import kotlinx.android.synthetic.main.fragment_my.*
import me.goldze.mvvmhabit.base.AppManager
import me.goldze.mvvmhabit.utils.RxUtils
import me.goldze.mvvmhabit.utils.systembar.StatusBarUtil
import java.util.*
/**
......@@ -174,22 +173,22 @@ class MyFragment : BaseFragment<FragmentMyBinding, MyViewModel>(), OnRefreshList
ic_theme.findViewById<TextView>(R.id.tv_theme_name).text = "享8大特权"
ic_theme.findViewById<TextView>(R.id.tv_me1).text = "无线缩放"
ic_theme.findViewById<TextView>(R.id.tv_me2).text = "国内外街景"
ic_theme.findViewById<TextView>(R.id.tv_me3).text = "VR全景"
ic_theme.findViewById<TextView>(R.id.tv_me4).text = "3D地图"
ic_theme.findViewById<TextView>(R.id.tv_me5).text = "高清地图"
ic_theme.findViewById<TextView>(R.id.tv_me3).text = "专属地图"
ic_theme.findViewById<TextView>(R.id.tv_me4).text = "VR全景"
ic_theme.findViewById<TextView>(R.id.tv_me5).text = "高清街景"
ic_theme.findViewById<TextView>(R.id.tv_me6).text = "全球景象"
ic_theme.findViewById<TextView>(R.id.tv_me7).text = "国内外搜索"
ic_theme.findViewById<TextView>(R.id.tv_me8).text = "景点推荐"
ic_theme.findViewById<ImageView>(R.id.iv_decorate1).setImageResource(R.mipmap.icon_me_tiao)
ic_theme.findViewById<ImageView>(R.id.iv_decorate2).setImageResource(R.mipmap.icon_me_tiao)
ic_theme.findViewById<ImageView>(R.id.iv_me1).setImageResource(R.mipmap.icon_privilege5)
ic_theme.findViewById<ImageView>(R.id.iv_me2).setImageResource(R.mipmap.icon_privilege2)
ic_theme.findViewById<ImageView>(R.id.iv_me3).setImageResource(R.mipmap.icon_privilege4)
ic_theme.findViewById<ImageView>(R.id.iv_me4).setImageResource(R.mipmap.icon_privilege3)
ic_theme.findViewById<ImageView>(R.id.iv_me5).setImageResource(R.mipmap.icon_privilege1)
ic_theme.findViewById<ImageView>(R.id.iv_me6).setImageResource(R.mipmap.icon_privilege6)
ic_theme.findViewById<ImageView>(R.id.iv_me7).setImageResource(R.mipmap.icon_privilege7)
ic_theme.findViewById<ImageView>(R.id.iv_me8).setImageResource(R.mipmap.icon_privilege8)
ic_theme.findViewById<ImageView>(R.id.iv_me1).setImageResource(R.mipmap.icon_privilege_my1)
ic_theme.findViewById<ImageView>(R.id.iv_me2).setImageResource(R.mipmap.icon_privilege_my2)
ic_theme.findViewById<ImageView>(R.id.iv_me3).setImageResource(R.mipmap.icon_privilege_my4)
ic_theme.findViewById<ImageView>(R.id.iv_me4).setImageResource(R.mipmap.icon_privilege_my3)
ic_theme.findViewById<ImageView>(R.id.iv_me5).setImageResource(R.mipmap.icon_privilege_my5)
ic_theme.findViewById<ImageView>(R.id.iv_me6).setImageResource(R.mipmap.icon_privilege_my6)
ic_theme.findViewById<ImageView>(R.id.iv_me7).setImageResource(R.mipmap.icon_privilege_my7)
ic_theme.findViewById<ImageView>(R.id.iv_me8).setImageResource(R.mipmap.icon_privilege_my8)
}
}
......@@ -12,7 +12,7 @@ import com.mints.street.netwrok.base.HttpSubscribeImpl
import com.mints.street.utils.DeviceUuidFactory
import me.goldze.mvvmhabit.base.BaseViewModel
import me.goldze.mvvmhabit.utils.KLog
import java.util.HashMap
import java.util.*
/**
* Created by 冯瑞雨 on 2021/7/2.
......@@ -55,7 +55,7 @@ class MyViewModel(application: Application) : BaseViewModel(application) {
vo["wxInfo"] = wxInfo
// vo["shumeiId"] = ShumeiManager.getInstance().shumeiDeviceId
vo["device"] = DeviceUuidFactory().deviceUuid.toString()
ApiModel.wechatlogin(lifecycleProvider,vo).safeSubscribe(object : HttpSubscribeImpl<BaseResponse<UserBean>>(
ApiModel.wechatlogin(lifecycleProvider, vo).safeSubscribe(object : HttpSubscribeImpl<BaseResponse<UserBean>>(
this@MyViewModel, true) {
override fun onBusinessSuccess(response: BaseResponse<UserBean>) {
//保存用户信息到Usermanager
......@@ -63,7 +63,7 @@ class MyViewModel(application: Application) : BaseViewModel(application) {
this@MyViewModel.saveTerminalInfo()//提交设备信息
this@MyViewModel.getmyInfo()
KLog.e("wechatlogin","微信登录接口成功")
KLog.e("wechatlogin", "微信登录接口成功")
}
......@@ -88,6 +88,7 @@ class MyViewModel(application: Application) : BaseViewModel(application) {
vo["oaid"] = OaidManager.getOaid()
vo["os"] = "android"
vo["model"] = deviceInfo.newModel
//传递这个值为唯一标识
vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName
......
......@@ -28,7 +28,6 @@ import com.mints.street.widget.dialog.WxLoginDialog
import kotlinx.android.synthetic.main.activity_openvip.*
import kotlinx.android.synthetic.main.include_header.*
import me.goldze.mvvmhabit.utils.AppUtils
import me.goldze.mvvmhabit.utils.KLog
import me.goldze.mvvmhabit.utils.ToastUtils
......@@ -52,6 +51,8 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
override fun initData() {
super.initData()
//是否提示继续支付弹窗
viewModel.isbackVipDialogTip()
//获取vip福利信息
viewModel.getVipProductsByType()
//获取支付方式
......@@ -120,9 +121,9 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
privilege.findViewById<TextView>(R.id.tv_theme_name).text = "享8大特权"
privilege.findViewById<TextView>(R.id.tv_me1).text = "无限缩放"
privilege.findViewById<TextView>(R.id.tv_me2).text = "国内外街景"
privilege.findViewById<TextView>(R.id.tv_me3).text = "VR全景"
privilege.findViewById<TextView>(R.id.tv_me4).text = "3D地图"
privilege.findViewById<TextView>(R.id.tv_me5).text = "高清地图"
privilege.findViewById<TextView>(R.id.tv_me3).text = "专属地图"
privilege.findViewById<TextView>(R.id.tv_me4).text = "VR全景"
privilege.findViewById<TextView>(R.id.tv_me5).text = "高清街景"
privilege.findViewById<TextView>(R.id.tv_me6).text = "全球景象"
privilege.findViewById<TextView>(R.id.tv_me7).text = "国内外搜索"
privilege.findViewById<TextView>(R.id.tv_me8).text = "景点推荐"
......@@ -136,8 +137,8 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
privilege.findViewById<ImageView>(R.id.iv_decorate2).setPadding(AppUtils.dp2Px(this, 50F), 0, 0, 0)
privilege.findViewById<ImageView>(R.id.iv_me1).setImageResource(R.mipmap.icon_privilege5)
privilege.findViewById<ImageView>(R.id.iv_me2).setImageResource(R.mipmap.icon_privilege2)
privilege.findViewById<ImageView>(R.id.iv_me3).setImageResource(R.mipmap.icon_privilege4)
privilege.findViewById<ImageView>(R.id.iv_me4).setImageResource(R.mipmap.icon_privilege3)
privilege.findViewById<ImageView>(R.id.iv_me3).setImageResource(R.mipmap.icon_privilege3)
privilege.findViewById<ImageView>(R.id.iv_me4).setImageResource(R.mipmap.icon_privilege4)
privilege.findViewById<ImageView>(R.id.iv_me5).setImageResource(R.mipmap.icon_privilege1)
privilege.findViewById<ImageView>(R.id.iv_me6).setImageResource(R.mipmap.icon_privilege6)
privilege.findViewById<ImageView>(R.id.iv_me7).setImageResource(R.mipmap.icon_privilege7)
......@@ -172,8 +173,19 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
super.initViewObservable()
viewModel.Vipdata.observe(this, Observer<VipBean> {
vipList = it.list as MutableList<VipBean.ListBean>?
var isActivityType = true
for (index in it?.list!!) {
if (index.activityType != 0) {
index?.isSelect = true
isActivityType = false
break
}
}
if (isActivityType) {
it?.list?.get(0)?.isSelect = true
}
//展示 推荐套餐内容
gridPaymentAdapter = GridPaymentAdapter(this, it.list!!)
gridPaymentAdapter = GridPaymentAdapter(this, it.list)
mAdapter?.addAdapter(gridPaymentAdapter)
})
viewModel.vippayParams.observe(this, Observer<WxPayParamBean> {
......@@ -246,7 +258,9 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
when (keyCode) {
KeyEvent.KEYCODE_BACK -> {
backvipDialog()
if (viewModel.isbackvipdata.value?.isPopup == 1) {
backvipDialog()
} else finish()
}
}
return true
......@@ -256,7 +270,9 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
override fun onClick(v: View?) {
when (v?.id) {
R.id.iv_left_icon -> {
backvipDialog()
if (viewModel.isbackvipdata.value?.isPopup == 1) {
backvipDialog()
} else finish()
}
R.id.ly_payfirst -> {
//设置选中样式
......@@ -289,14 +305,15 @@ class OpenvipActivity : BaseActivity<ActivityOpenvipBinding, OpenvipViewModel>()
private fun payVip() {
if (vipList != null && vipList!!.size > 0 && gridPaymentAdapter != null) {
if (TextUtils.equals("WEIXIN", currentPayType)) {
viewModel.getVipPayParams("WEIXIN", vipList!![gridPaymentAdapter!!.getPosition()].pid)
viewModel.getVipPayParams("WEIXIN", gridPaymentAdapter?.getPid())
} else {
viewModel.getVipPayParams("ALIPAY", vipList!![gridPaymentAdapter!!.getPosition()].pid)
viewModel.getVipPayParams("ALIPAY", gridPaymentAdapter?.getPid())
}
}
}
private fun backvipDialog() {
DialogUtils.showbackvipDialog(this, object : DialogListener() {
override fun onClick(dialog: Dialog?, v: View?) {
if (dialog != null && dialog.isShowing) {
......
......@@ -12,7 +12,7 @@ import com.mints.street.netwrok.base.HttpSubscribeImpl
import com.mints.street.utils.DeviceUuidFactory
import me.goldze.mvvmhabit.base.BaseViewModel
import me.goldze.mvvmhabit.utils.KLog
import java.util.HashMap
import java.util.*
class OpenvipViewModel(application: Application) : BaseViewModel(application) {
......@@ -73,8 +73,8 @@ class OpenvipViewModel(application: Application) : BaseViewModel(application) {
/**
* 获取支付参数
*/
fun getVipPayParams(payChannel:String,pid: String) {
val vo = HashMap<String, Any>()
fun getVipPayParams(payChannel: String, pid: String?) {
val vo = HashMap<String, Any?>()
vo["payChannel"] = payChannel
vo["pid"] = pid
ApiModel.getVipPayParams(lifecycleProvider, vo).safeSubscribe(
......@@ -86,7 +86,7 @@ class OpenvipViewModel(application: Application) : BaseViewModel(application) {
override fun onError(e: Throwable) {
KLog.e("getVipPayParams", e.printStackTrace())
}
}
}
)
}
......@@ -116,23 +116,23 @@ class OpenvipViewModel(application: Application) : BaseViewModel(application) {
vo["wxInfo"] = wxInfo
// vo["shumeiId"] = ShumeiManager.getInstance().shumeiDeviceId
vo["device"] = DeviceUuidFactory().deviceUuid.toString()
ApiModel.wechatlogin(lifecycleProvider,vo).safeSubscribe(object : HttpSubscribeImpl<BaseResponse<UserBean>>(
ApiModel.wechatlogin(lifecycleProvider, vo).safeSubscribe(object : HttpSubscribeImpl<BaseResponse<UserBean>>(
this@OpenvipViewModel, true) {
override fun onBusinessSuccess(response: BaseResponse<UserBean>) {
//保存用户信息到Usermanager
UserManager.INSTANCE.saveUserInfo(response.result)
this@OpenvipViewModel.saveTerminalInfo()//提交设备信息
KLog.e("wechatlogin","微信登录接口成功")
KLog.e("wechatlogin", "微信登录接口成功")
ToastUtils.showLong("登录成功")
isloginSuc.value=true
isloginSuc.value = true
}
override fun onError(e: Throwable) {
super.onError(e)
KLog.e("wechatlogin", "微信登录接口失败")
isloginSuc.value=false
isloginSuc.value = false
}
})
}
......@@ -163,4 +163,22 @@ class OpenvipViewModel(application: Application) : BaseViewModel(application) {
}
})
}
//接受参数
var isbackvipdata: MutableLiveData<IsBackVipBean> = MutableLiveData()
/**
* 返回是否显示推出支付弹窗
*/
fun isbackVipDialogTip() {
val vo = hashMapOf<String, Any>()
vo["deviceId"] = DeviceUuidFactory().deviceUuid
ApiModel.isbackvipdialogtip(lifecycleProvider, vo).safeSubscribe(
object : HttpSubscribeImpl<BaseResponse<IsBackVipBean>>(
this@OpenvipViewModel, true) {
override fun onBusinessSuccess(response: BaseResponse<IsBackVipBean>) {
isbackvipdata.value=response.result
KLog.e("isbackvipdialogtip", response.result.toString())
}
})
}
}
......@@ -44,6 +44,12 @@ object ApiModel {
.execute(lifecycleProvider, MainApi.newInstance().saveTerminalInfo(map))
}
/**
* 是否弹窗
*/
fun isbackvipdialogtip(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any>):Observable<Response<BaseResponse<IsBackVipBean>>>{
return HttpManager.getInstance().execute(lifecycleProvider,MainApi.newInstance().isbackvipdialogtip(map))
}
/**
* 开通会员
......@@ -64,7 +70,7 @@ object ApiModel {
/**
* 获取支付参数
*/
fun getVipPayParams(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any>): Observable<Response<BaseResponse<WxPayParamBean>>> {
fun getVipPayParams(lifecycleProvider: LifecycleProvider<Any>?, map: Map<String, Any?>): Observable<Response<BaseResponse<WxPayParamBean>>> {
return HttpManager.getInstance()
.execute(lifecycleProvider, MainApi.newInstance().getVipPayParams(map))
}
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFE8A4" />
<solid android:color="#F0D59D" />
<corners android:radius="100dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 填充的颜色 -->
<solid android:color="@color/color_A7BCFE" />
<gradient
android:startColor="#3A98F7"
android:endColor="#76BAFF"
android:angle="90"/>
<!-- 设置按钮的四个角为弧形 -->
<!-- android:radius 弧形的半径 -->
<corners android:radius="30dip" />
......
......@@ -46,6 +46,7 @@
android:layout_height="40dp"
android:layout_marginTop="40dp"
android:layout_marginBottom="220dp"
android:padding="3dp"
android:src="@mipmap/map_change_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -56,6 +57,7 @@
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:padding="3dp"
android:src="@mipmap/icon_hotview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_map_change_icon" />
......
......@@ -10,36 +10,20 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#CC000000"
android:layout_height="wrap_content"
android:background="@mipmap/iv_bg_login"
android:orientation="vertical">
<include
android:id="@+id/ic_q"
layout="@layout/include_header"/>
layout="@layout/include_header" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="60dp"
android:text="在国内也能用的"
android:textSize="24dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="全球街景地图"
android:textSize="32dp" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:layout_marginTop="30dp"
android:layout_marginTop="180dp"
android:layout_marginRight="30dp"
android:background="@drawable/shape_login_bg"
android:orientation="horizontal">
......@@ -56,15 +40,15 @@
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginStart="10dp"
android:paddingRight="20dp"
android:background="@null"
android:gravity="center_vertical"
android:hint="@string/str_input_phone"
android:inputType="number"
android:maxLength="13"
android:maxLines="1"
android:textColor="@color/color_172B54"
android:textColorHint="@color/color_BEC2CC"
android:paddingRight="20dp"
android:textColor="@color/white"
android:textColorHint="@color/white"
android:textSize="14sp" />
</androidx.appcompat.widget.LinearLayoutCompat>
......@@ -119,10 +103,16 @@
</androidx.appcompat.widget.LinearLayoutCompat>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@android:color/transparent"
android:layout_weight="1"/>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="40dp"
android:layout_marginTop="30dp"
android:layout_marginEnd="40dp"
......@@ -131,17 +121,14 @@
android:textColor="@color/white"
android:textSize="16sp" />
<View
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"/>
<TextView
android:paddingBottom="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginLeft="30dp"
android:layout_marginTop="20dp"
android:layout_marginRight="30dp"
android:paddingBottom="10dp"
android:text="@string/str_login_tint" />
</androidx.appcompat.widget.LinearLayoutCompat>
......
......@@ -17,91 +17,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.mints.street.widget.ScrollLayout
android:id="@+id/scroll_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:fillViewport="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/cursor_bg"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="10dp">
<ImageView
android:id="@+id/image_under"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@mipmap/icon_content_back"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.coorchice.library.SuperTextView
android:id="@+id/stb_bg_search"
android:layout_width="match_parent"
android:layout_height="37dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_under"
app:stv_corner="20dp"
app:stv_solid="#F5F9FA"
app:stv_stroke_color="#ffe1e1e1"
app:stv_stroke_width="1dp" />
<ImageView
android:id="@+id/im_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:src="@mipmap/search_icon"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toStartOf="@id/stb_bg_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
<View
android:layout_width="0.5dp"
android:layout_height="14dp"
android:layout_marginStart="16dp"
android:background="#A1A3AF"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toEndOf="@id/im_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="27dp"
android:text="搜索境内、境外地址"
android:textColor="#A2A4B1"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toEndOf="@id/im_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.mints.street.widget.ScrollRecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:itemBinding="@{viewModel.addressItemBinding}"
app:items="@{viewModel.addressList}"
tools:listitem="@layout/item_home_button">
</com.mints.street.widget.ScrollRecyclerView>
</com.mints.street.widget.ScrollLayout>
<ImageView
android:id="@+id/iv_click"
android:layout_width="80dp"
......@@ -150,6 +65,7 @@
android:layout_height="40dp"
android:layout_marginTop="35dp"
android:layout_marginBottom="220dp"
android:padding="3dp"
android:src="@mipmap/map_change_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -189,6 +105,90 @@
</LinearLayout>
<com.mints.street.widget.ScrollLayout
android:id="@+id/scroll_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:fillViewport="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/cursor_bg"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingBottom="10dp">
<ImageView
android:id="@+id/image_under"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@mipmap/icon_content_back"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.coorchice.library.SuperTextView
android:id="@+id/stb_bg_search"
android:layout_width="match_parent"
android:layout_height="37dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_under"
app:stv_corner="20dp"
app:stv_solid="#F5F9FA"
app:stv_stroke_color="#ffe1e1e1"
app:stv_stroke_width="1dp" />
<ImageView
android:id="@+id/im_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:src="@mipmap/search_icon"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toStartOf="@id/stb_bg_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
<View
android:layout_width="0.5dp"
android:layout_height="14dp"
android:layout_marginStart="16dp"
android:background="#A1A3AF"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toEndOf="@id/im_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="27dp"
android:text="搜索境内、境外地址"
android:textColor="#A2A4B1"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toEndOf="@id/im_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.mints.street.widget.ScrollRecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:itemBinding="@{viewModel.addressItemBinding}"
app:items="@{viewModel.addressList}"
tools:listitem="@layout/item_home_button">
</com.mints.street.widget.ScrollRecyclerView>
</com.mints.street.widget.ScrollLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
......
......@@ -7,15 +7,10 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:background="@mipmap/ic_bg_upvip"
android:gravity="bottom"
android:orientation="vertical">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center"
android:src="@mipmap/iv_upgrade" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......@@ -37,19 +32,21 @@
<Button
android:id="@+id/bt_upgrade"
android:layout_width="200dp"
android:layout_height="40dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:background="@drawable/shape_upgrade_btn_bg"
android:background="@mipmap/ic_btn_upvip_bg"
android:text="继续升级"
android:layout_marginBottom="30dp"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
<ImageView
android:id="@+id/iv_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_margin="10dp"
android:layout_gravity="end|top"
android:src="@mipmap/icon_upgrade_close" />
</FrameLayout>
\ No newline at end of file
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