Commit 5f923dbf authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :支付页UI
[实现方案] :
parent 36b60d96
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.zxhl.cms">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application>
<!--海外支付页-->
<activity android:name=".pay.view.PaymentPageActivity" android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="payment_page"
android:scheme="hwxg" />
</intent-filter>
</activity>
<!--Vip支付页-->
<activity android:name=".pay.view.VipPayActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="vip_pay"
android:scheme="hwxg" />
</intent-filter>
</activity>
<!--星币支付页-->
<activity android:name=".pay.view.CoinStoreActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="coin_store"
android:scheme="hwxg" />
</intent-filter>
</activity>
<activity android:name=".common.WebActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="web"
android:scheme="hwxg" />
</intent-filter>
</activity>
<activity android:name=".pay.PayActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="pay"
android:scheme="hwxg" />
</intent-filter>
</activity>
<activity android:name=".pay.PayRecordActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="memberrecord"
android:scheme="hwxg" />
</intent-filter>
</activity>
<activity android:name=".pay.CoinPayRecordActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="coinpayrecord"
android:scheme="hwxg" />
</intent-filter>
</activity>
<activity android:name=".pay.StarCoinPayActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="starcoinpay"
android:scheme="hwxg" />
</intent-filter>
</activity>
<!-- 友盟配置 -->
......@@ -61,28 +98,30 @@
<meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" /> <!-- QQ配置 -->
<!-- FaceBook-->
<!-- FaceBook -->
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
<meta-data
android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token" />
<activity android:name="com.facebook.FacebookActivity"
android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
<activity
android:name="com.facebook.CustomTabActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
<!-- FaceBook END-->
</application>
</manifest>
</manifest>
\ No newline at end of file
......@@ -23,7 +23,7 @@ public class Constant {
public static String b = "E2Y1YREK2BYDAC5B";
public static String WX_APPID = "wx7fc1506d059d5ac1";
public static String WX_APPKEY = "77202c1939fbe6421f2e9c998a0bbec0";
// public static int SDKAPPID = 1400605334;
// public static int SDKAPPID = 1400605334;
public static int SDKAPPID = 1400655771;
public static String PAY_RESULT = "pay_result";
......@@ -45,87 +45,14 @@ public class Constant {
}
public static class Key {
public static String BYTE_DANCE_APP_ID = "";
public static String BYTE_DANCE_APP_NAME = "";
public static String BYTE_DANCE_AD_ID = "";
public static String BYTE_DANCE_SPLASH_SLOT_ID = "";
public static String BYTE_DANCE_FEED_SLOT_ID = "";
public static String WX_LOGIN_APP_ID = "";
public static String WX_LOGIN_KEY = "";
public static String WX_SHARE_KEY = "";
public static String WX_SHARE_APP_ID = "";
public static String QQ_SHARE_APP_ID = "";
public static String QQ_SHARE_KEY = "";
public static String BAIDU_SDK_APP_ID = "";
public static String BAIDU_SDK_AD_ID = "";
public static String DFTT_APP_ID = "";
public static String DFTT_KEY = "";
public static String FEED_SLOT_ID = "";
public static String SPLASH_SLOT_ID = "";
public static String NEWS_DETAIL_GUIDE_SLOT_ID = "";
public static String SEARCH_BOTTOM_SLOT_ID = "";
public static String TIME_COINS_SLOT_ID = "";
public static String LOCAL_NEWS_NAVIGATION_SLOT_ID = "";
public static String UC_API_SLOT_ID = "";
public static String UC_BANNER_SLOT_ID = "";
public static String VIDEO_DETAIL_TOP_SLOT_ID = "";
public static String VIDEO_DETAIL_BOTTOM_SLOT_ID = "";
public static String UC_ACTIVITY_SLOT_ID = "";
public static String UC_READ_SLOT_ID = "";
public static String UC_HELP_CENTER_SLOT_ID = "";
public static String UC_NAVIGATION_SLOT_ID = "";
public static String UC_APPLICATION_SLOT_ID = "";
public static String UC_LIST_SLOT_ID = "";
public static String VIDEO_DETAIL_PROCESSBAR = "";
public static String KKZ_SLOT_ID = "";
public static String DDZ_SLOT_ID = "";
public static String JSZ_SLOT_ID = "";
public static String STEP_TOP_SLOT_ID = "";
public static String STEP_BOTTOM_SLOT_ID = "";
public static String VIDEO_LIST_SLOT_ID = "";
public static String VIDEO_PROGRESS = "71";
public static String AD_VIDEO_BYTE_DANCE = "";
public static String AD_BANNER_BYTE_DANCE = "";
public static String AD_FEED_GDT_APPID = "1107825841";
public static String AD_FEED_GDT_SLOT_ID = "1080543741991946";
public static String TEST_LOTTERY = "0";
public static String ONE_LOTTERY = "1";
public static String FIVE_LOTTERY = "2";
public static String PAY_TYPE_COIN = "0";
public static String PAY_TYPE_VIP = "1";
}
......@@ -134,46 +61,10 @@ public class Constant {
public static boolean isLogin = false;
}
public static final String UPDATE_TAB_INFO = "update_tab_info";
public static final String UPDATE_VIDEO_TAB_INFO = "update_video_tab_info";
public static final String OPEN_MAIN_PAGE = "main_page_open";
public static final String UPDATE_SHAREDATA = "update_sharedata";
public static final String JUMP_CLICK_AD = "jump_click_ad";
public static final String SIGN_IN = "sign_in";
public static final String HIDE_MAIN_FLOAT_ICON = "hide_main_float_icon";
public static final String HIDE_MAIN_LOGIN_BTN = "hide_main_login_btn";
public static final String SETVIDEOID = "set_video_id";
public static final String UPDATEVIDEOPROGRESS = "update_video_progeress";
public static final String UPDATE_MESSAGE_ICON = "update_message_icon";
public static final String PAUSEORRESUMEVIDEOPROGRESS = "pause_or_resume_video_progeress";
public static final String VIDEOPLAYEND = "video_play_end";
public static final String UPDATEDEFILE = "update_de_file";
public static final String UPDATEMESSAGELIST = "update_message_list";
public static final String UPDATEEDITMESSAGELIST = "update_edit_message_list";
public static final String SETALLEDITMESSAGELIST = "set_alledit_message_list";
public static final String DELSELECTMESSAGELIST = "del_select_message_list";
public static final String OPENORCLOSETASKPUSHDIALOG = "open_or_close_taskpush_dialog";
public static final String UPDATE_REDPACKET_COUNT = "update_packet_count";
public static final String UPDATE_WEATHER = "update_weathert";
public static final String OPEN_CHANGE_GUIDE = "open_change_guide";
public static final String OPEN_TASK_GUIDE = "open_task_guide";
public static final String OPEN_VIDEO_GUIDE = "open_video_guide";
public static final String UPDATE_MAIN_ACTIVITY = "update_main_activity";
public static final String DOWNLOAD_FILE = "download_file";
public static final String APP_ACTIVITY = "app_activity";
public static final String INSTALL_APK = "install_apk";
public static final String UPDATE_USERCENTER_STEP_COUNT = "update_usercenter_step_count";
public static final String SAVE_STEP_COUNT = "save_step_count";
public static final String REFRESH_VIDEO_DATA = "refresh_video_data";
public static final String REFRESH_VIDEO = "refresh_video";
public static final String REFRESH_NEWS_DATA = "refresh_news_data";
public static final String REFRESH_LOGIN_STATS = "refresh_login_stats";
public static final String SWITCH_PAGE = "switch_page";
public static final String REFRESH_NEWS = "refresh_news";
public static final String REFRESH_TASK_DATA = "refresh_task_data";
public static final String order_data_update = "order_data_update";
public static final String swith_fragment = "swith_fragment";
public static final String finish_activity = "finish_activity";
public static final String SCREENON = "screenon";
......
package com.zxhl.cms.net.model.pay
/**
* @author (wangXuewei)
* @datetime 2022-04-13 10:32 GMT+8
* @detail :
*/
class CoinStoreEntity {
}
\ No newline at end of file
package com.zxhl.cms.net.model.pay
/**
* @author (wangXuewei)
* @datetime 2022-04-13 10:32 GMT+8
* @detail :
*/
class VipPayEntity {
}
\ No newline at end of file
package com.zxhl.cms.pay.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.chat.RecordEntity
/**
* @author (wangXuewei)
* @datetime 2022-04-12 19:04 GMT+8
* @detail :
*/
class BecomeVipBannerAdapter :
BaseRecyclerAdapter<RecordEntity, BecomeVipBannerAdapter.ViewHolder> {
private var mContext: Context? = null
private var bannerImg = listOf(
R.drawable.vip_banner_bj_video,
R.drawable.vip_banner_bj_vip,
R.drawable.vip_banner_bj_view,
R.drawable.vip_banner_bj_chat,
)
constructor(
content: Context?
) : super() {
mContext = content
}
override fun onCreateViewHolder(holder: ViewGroup, p1: Int): BecomeVipBannerAdapter.ViewHolder {
return ViewHolder(
LayoutInflater.from(holder.context)
.inflate(R.layout.item_layout_become_vip_banner_view, holder, false)
)
}
override fun onBindViewHolder(holder: BecomeVipBannerAdapter.ViewHolder, position: Int) {
// val data = mList[position]
holder.id_banner_img.setImageResource(bannerImg[position])
}
override fun getItemCount(): Int {
return bannerImg.size
}
inner class ViewHolder : RecyclerView.ViewHolder {
var id_banner_img: ImageView
constructor(itemView: View) : super(itemView) {
id_banner_img = itemView.findViewById(R.id.id_item_banner_img)
}
}
}
\ No newline at end of file
package com.zxhl.cms.pay.adapter
import android.content.Context
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.pay.VipPayEntity
import com.zxhl.cms.utils.OnRecycleItemClickListener
/**
* @author (wangXuewei)
* @datetime 2022-04-12 19:04 GMT+8
* @detail :
*/
class BecomeVipPriceAdapter : BaseRecyclerAdapter<VipPayEntity, BecomeVipPriceAdapter.ViewHolder> {
private var mContext: Context? = null
private var mPosition = 0
private val listener: OnRecycleItemClickListener<VipPayEntity>
constructor(
content: Context?,
listener: OnRecycleItemClickListener<VipPayEntity>
) : super() {
this.listener = listener
mContext = content
}
fun setSelectView(position: Int) {
mPosition = position;
notifyDataSetChanged()
}
override fun onCreateViewHolder(holder: ViewGroup, p1: Int): BecomeVipPriceAdapter.ViewHolder {
return ViewHolder(
LayoutInflater.from(holder.context)
.inflate(R.layout.item_layout_become_vip_price_view, holder, false)
)
}
override fun onBindViewHolder(holder: BecomeVipPriceAdapter.ViewHolder, position: Int) {
// val data = mList[position]
holder.id_vip_time.text = "1 Week"
holder.id_vip_money.text = "$${2.99}"
if (mPosition==position){
holder.id_item_view.background = mContext?.getDrawable(R.drawable.shape_8857ff_bd8aff_bg_r10)
holder.id_vip_time.setTextColor(Color.parseColor("#FFFFFF"))
holder.id_vip_money.setTextColor(Color.parseColor("#FFFFFF"))
}else{
holder.id_item_view.background = mContext?.getDrawable(R.drawable.shape_white_r10)
holder.id_vip_time.setTextColor(Color.parseColor("#333333"))
holder.id_vip_money.setTextColor(Color.parseColor("#333333"))
}
holder.id_item_view?.setOnClickListener {
listener.onItemClick(it,position,null)
}
}
override fun getItemCount(): Int {
return 3
}
inner class ViewHolder : RecyclerView.ViewHolder {
var id_vip_time: TextView
var id_vip_money: TextView
var id_item_view: LinearLayout
constructor(itemView: View) : super(itemView) {
id_item_view = itemView.findViewById(R.id.id_ll_become_vip_view)
id_vip_time = itemView.findViewById(R.id.id_tv_item_vip_time)
id_vip_money = itemView.findViewById(R.id.id_tv_item_vip_price)
}
}
}
\ No newline at end of file
package com.zxhl.cms.pay.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.common.base.BaseRecyclerAdapter
import com.zxhl.cms.net.model.chat.RecordEntity
import com.zxhl.cms.net.model.pay.VipPayEntity
import com.zxhl.cms.utils.OnRecycleItemClickListener
/**
* @author (wangXuewei)
* @datetime 2022-04-12 19:04 GMT+8
* @detail :
*/
class CoinStoreAdapter: BaseRecyclerAdapter<RecordEntity, CoinStoreAdapter.ViewHolder> {
private var mContext: Context? = null
private val listener: OnRecycleItemClickListener<RecordEntity>
constructor(
content: Context?,
listener: OnRecycleItemClickListener<RecordEntity>
) : super() {
this.listener = listener
mContext = content
}
override fun onCreateViewHolder(holder: ViewGroup, p1: Int): CoinStoreAdapter.ViewHolder {
return ViewHolder(
LayoutInflater.from(holder.context)
.inflate(R.layout.item_layout_coin_store_view, holder, false)
)
}
override fun onBindViewHolder(holder: CoinStoreAdapter.ViewHolder, position: Int) {
// val data = mList[position]
holder.id_tv_coin.text="${360}"
holder.id_tv_money.text="$${4.99}"
holder.id_ll_item_view.setOnClickListener {
listener?.onItemClick(it,position,null)
}
}
override fun getItemCount(): Int {
return 4
}
inner class ViewHolder : RecyclerView.ViewHolder {
var id_ll_item_view: LinearLayout
var id_tv_coin: TextView
var id_tv_money: TextView
constructor(itemView: View) : super(itemView) {
id_ll_item_view = itemView.findViewById(R.id.id_ll_item_coin_story_view)
id_tv_coin = itemView.findViewById(R.id.id_tv_coin_num)
id_tv_money = itemView.findViewById(R.id.id_tv_coin_pay_money)
}
}
}
\ No newline at end of file
package com.zxhl.cms.pay.contract
import com.zxhl.cms.net.model.pay.CoinStoreEntity
class CoinStoreContract {
interface View {
fun setCoinPayList(result: List<CoinStoreEntity>?)
fun setUserCoins(coinNum: Double)
}
interface Presenter {
fun getCoinPayList()
fun getUserCoins()
}
}
\ No newline at end of file
package com.zxhl.cms.pay.contract
import com.zxhl.cms.net.model.box.AppInEntity
import com.zxhl.cms.net.model.pay.CoinStoreEntity
class PaymentPageContract {
interface View {
fun orderVerificationSuccessful(status: String)
fun orderVerificationFailed(errorMsg: String)
fun setAppInfo(result: AppInEntity?)
}
interface Presenter {
fun verifyThePayment(result: String?, payType: Int)
fun appInfo()
}
}
\ No newline at end of file
package com.zxhl.cms.pay.contract
import com.zxhl.cms.net.model.pay.CoinStoreEntity
class VipPayContract {
interface View {
fun setVipPayList(result: List<CoinStoreEntity>?)
}
interface Presenter {
fun getVipPayList()
}
}
\ No newline at end of file
package com.zxhl.cms.pay.presenter
import com.zxhl.cms.pay.contract.CoinStoreContract
/**
* @author (wangXuewei)
* @datetime 2022-04-13 10:29 GMT+8
* @detail :
*/
class CoinStorePresenter:CoinStoreContract.Presenter {
private val mView: CoinStoreContract.View
constructor(mView: CoinStoreContract.View) {
this.mView = mView
}
override fun getCoinPayList() {
}
override fun getUserCoins() {
mView.setUserCoins(0.0)
}
}
\ No newline at end of file
package com.zxhl.cms.pay.presenter
import com.zxhl.cms.pay.contract.CoinStoreContract
import com.zxhl.cms.pay.contract.PaymentPageContract
/**
* @author (wangXuewei)
* @datetime 2022-04-13 10:29 GMT+8
* @detail :
*/
class PaymentPagePresenter:PaymentPageContract.Presenter {
private val mView: PaymentPageContract.View
constructor(mView: PaymentPageContract.View) {
this.mView = mView
}
override fun verifyThePayment(result: String?, payType: Int) {
}
override fun appInfo() {
}
}
\ No newline at end of file
package com.zxhl.cms.pay.presenter
import com.zxhl.cms.pay.contract.CoinStoreContract
import com.zxhl.cms.pay.contract.VipPayContract
/**
* @author (wangXuewei)
* @datetime 2022-04-13 10:29 GMT+8
* @detail :
*/
class VipPayPresenter:VipPayContract.Presenter {
private val mView: VipPayContract.View
constructor(mView: VipPayContract.View) {
this.mView = mView
}
override fun getVipPayList() {
}
}
\ No newline at end of file
package com.zxhl.cms.pay.view
import android.view.View
import androidx.recyclerview.widget.GridLayoutManager
import com.zxhl.cms.R
import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.model.chat.RecordEntity
import com.zxhl.cms.net.model.pay.CoinStoreEntity
import com.zxhl.cms.pay.adapter.CoinStoreAdapter
import com.zxhl.cms.pay.contract.CoinStoreContract
import com.zxhl.cms.pay.presenter.CoinStorePresenter
import com.zxhl.cms.utils.JumpUtils
import com.zxhl.cms.utils.OnRecycleItemClickListener
import kotlinx.android.synthetic.main.activity_layout_coin_store.*
import kotlinx.android.synthetic.main.activity_layout_coin_store.id_img_back
class CoinStoreActivity : BaseActivity(), CoinStoreContract.View,
OnRecycleItemClickListener<RecordEntity> {
private var mAdapter: CoinStoreAdapter? = null
private var mPresenter: CoinStorePresenter? = null
override fun init() {
mPresenter = CoinStorePresenter(this)
mAdapter = CoinStoreAdapter(this, this)
id_rcl_pay_coin_list?.layoutManager = GridLayoutManager(this, 2)
id_rcl_pay_coin_list?.adapter = mAdapter
id_img_coin_record.setOnClickListener(this)
id_img_back.setOnClickListener(this)
mPresenter?.getCoinPayList()
mPresenter?.getUserCoins()
}
override fun onClick(v: View?) {
when (v) {
id_img_coin_record -> {
showToast("id_img_coin_record")
}
id_img_back -> {
finish()
}
}
}
override fun layoutID(): Int {
return R.layout.activity_layout_coin_store
}
override fun setCoinPayList(result: List<CoinStoreEntity>?) {
}
override fun setUserCoins(coinNum: Double) {
id_tv_user_coins_num.text = "$coinNum"
}
override fun onItemClick(view: View?, position: Int, data: RecordEntity?) {
JumpUtils.paymentPageJump(Constant.Key.PAY_TYPE_COIN,"1","name","0.0")
}
}
\ No newline at end of file
package com.zxhl.cms.pay.view
import android.content.Intent
import android.view.View
import com.zxhl.cms.R
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.model.box.AppInEntity
import com.zxhl.cms.pay.contract.PaymentPageContract
import com.zxhl.cms.widget.CenterDialog
import kotlinx.android.synthetic.main.activity_layout_payment_page.*
import kotlinx.android.synthetic.main.activity_layout_payment_page.id_img_back
import kotlinx.android.synthetic.main.activity_member.*
/**
* @author (wangXuewei)
* @datetime 2022-04-13 15:56 GMT+8
* @detail :
*/
class PaymentPageActivity : BaseActivity(), PaymentPageContract.View {
companion object {
const val GOOGLE_PAY = 4 //Google支付类型
const val PAY_PAL_PAY = 5 //PayPal支付类型
}
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
init()
}
private var payType: Int? = GOOGLE_PAY
override fun init() {
val goodsType = intent?.data?.getQueryParameter("pay_goods_type") ?: ""
val goodsId = intent?.data?.getQueryParameter("pay_goods_id") ?: ""
val goodsName = intent?.data?.getQueryParameter("pay_goods_name") ?: ""
val goodsPrice = intent?.data?.getQueryParameter("pay_goods_price") ?: ""
id_tv_goods_name.text = goodsName
id_tv_goods_price.text = "Price:$${goodsPrice}"
id_tv_pay_btn.text = "Pay $${goodsPrice}"
id_img_back.setOnClickListener(this)
id_img_google_btn.setOnClickListener(this)
id_rl_paypal_pay.setOnClickListener(this)
id_tv_pay_btn.setOnClickListener(this)
}
override fun onClick(v: View?) {
when (v) {
id_img_back -> {
finish()
}
id_img_google_btn -> {
selectPayType(GOOGLE_PAY)
}
id_rl_paypal_pay -> {
selectPayType(PAY_PAL_PAY)
}
id_tv_pay_btn -> {
CenterDialog.showPaySuccessDialog(this)
}
}
}
override fun layoutID(): Int {
return R.layout.activity_layout_payment_page
}
private fun selectPayType(type: Int) {
payType = type
id_img_google_btn?.setImageResource(R.drawable.icon_check_weixuanzhong)
id_img_paypal_btn?.setImageResource(R.drawable.icon_check_weixuanzhong)
when (type) {
GOOGLE_PAY -> {
id_img_google_btn.setImageResource(R.drawable.icon_check_xuanzhong)
}
PAY_PAL_PAY -> {
id_img_paypal_btn.setImageResource(R.drawable.icon_check_xuanzhong)
}
}
}
override fun orderVerificationSuccessful(status: String) {
}
override fun orderVerificationFailed(errorMsg: String) {
}
override fun setAppInfo(result: AppInEntity?) {
}
}
\ No newline at end of file
package com.zxhl.cms.pay.view
import android.util.Log
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.PagerSnapHelper
import androidx.recyclerview.widget.RecyclerView
import com.zxhl.cms.R
import com.zxhl.cms.common.Constant
import com.zxhl.cms.common.base.BaseActivity
import com.zxhl.cms.net.model.pay.CoinStoreEntity
import com.zxhl.cms.net.model.pay.VipPayEntity
import com.zxhl.cms.pay.adapter.BecomeVipBannerAdapter
import com.zxhl.cms.pay.adapter.BecomeVipPriceAdapter
import com.zxhl.cms.pay.contract.VipPayContract
import com.zxhl.cms.pay.presenter.VipPayPresenter
import com.zxhl.cms.utils.JumpUtils
import com.zxhl.cms.utils.OnRecycleItemClickListener
import com.zxhl.cms.widget.CenterDialog
import com.zxhl.cms.widget.RecyclerViewPageChangeListenerHelper
import kotlinx.android.synthetic.main.activity_layout_vip_pay.*
class VipPayActivity : BaseActivity(), VipPayContract.View,
OnRecycleItemClickListener<VipPayEntity> {
private var mBannerAdapter: BecomeVipBannerAdapter? = null
private var mPriceAdapter: BecomeVipPriceAdapter? = null
private var mPresenter: VipPayPresenter? = null
override fun init() {
mPresenter = VipPayPresenter(this)
mBannerAdapter = BecomeVipBannerAdapter(this)
mPriceAdapter = BecomeVipPriceAdapter(this, this)
vipBannerInit()
id_rcl_pay_vip_list?.layoutManager = LinearLayoutManager(this)
id_rcl_pay_vip_list?.adapter = mPriceAdapter
mPresenter?.getVipPayList()
mPriceAdapter?.setSelectView(0)
id_img_back.setOnClickListener(this)
id_img_vip_record.setOnClickListener(this)
id_tv_vip_pay_btn.setOnClickListener(this)
}
private fun vipBannerInit() {
id_rcl_banner?.layoutManager = LinearLayoutManager(
this,
LinearLayoutManager.HORIZONTAL,
false
)
id_rcl_banner?.adapter = mBannerAdapter
val mPagerSnapHelper = PagerSnapHelper()
mPagerSnapHelper.attachToRecyclerView(id_rcl_banner)
id_rcl_banner.addOnScrollListener(
RecyclerViewPageChangeListenerHelper(mPagerSnapHelper,
object : RecyclerViewPageChangeListenerHelper.OnPageChangeListener {
override fun onScrollStateChanged(recyclerView: RecyclerView?, newState: Int) {
}
override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) {
}
override fun onPageSelected(position: Int) {
Log.d("wxw", "pos${position}")
}
})
)
}
override fun onClick(v: View?) {
when (v) {
id_img_vip_record -> {
showToast("VIP Pay Record")
}
id_tv_vip_pay_btn -> {
showToast("VIP Pay ")
JumpUtils.paymentPageJump(Constant.Key.PAY_TYPE_VIP,"1","vip","9.9")
}
id_img_back -> {
finish()
}
}
}
override fun layoutID(): Int {
return R.layout.activity_layout_vip_pay
}
override fun setVipPayList(result: List<CoinStoreEntity>?) {
}
override fun onItemClick(view: View?, position: Int, data: VipPayEntity?) {
mPriceAdapter?.setSelectView(position)
}
override fun onBackPressed() {
CenterDialog.showPayExitDialog(this) {
finish()
}
}
}
\ No newline at end of file
......@@ -218,4 +218,19 @@ interface RounterApi {
@RounterUri(Constant.scheme + "://loginbefore")
fun getIntentLoginBefore(): Intent
@RounterUri(Constant.scheme + "://coin_store")
fun getIntentCoinStore(): Intent
@RounterUri(Constant.scheme + "://vip_pay")
fun getIntentBecomeVip(): Intent
//
@RounterUri(Constant.scheme + "://payment_page")
fun getIntentPaymentPage(
@RounterParam("pay_goods_type") type: String,
@RounterParam("pay_goods_id") id: String,
@RounterParam("pay_goods_name") name: String,
@RounterParam("pay_goods_price") price: String
): Intent
}
\ No newline at end of file
......@@ -486,7 +486,10 @@ object CenterDialog {
}
val clickPrivat: ClickableSpan = object : ClickableSpan() {
override fun onClick(widget: View) {
JumpUtils.webJump(R.string.PrivacyAgreement.toString(), NetConfig.H5.WEB_URL_PRIVACY)
JumpUtils.webJump(
R.string.PrivacyAgreement.toString(),
NetConfig.H5.WEB_URL_PRIVACY
)
}
}
val descStr = SpannableStringBuilder("你可阅读《隐私政策》及《用户协议》了解详细信息。如你同意,请点击“同意”开始接收我们的服务。")
......@@ -632,4 +635,52 @@ object CenterDialog {
mDialog?.setCanceledOnTouchOutside(false)
mDialog?.show()
}
//支付成功弹窗
fun showPaySuccessDialog(activity: Activity) {
val mDialog = Dialog(activity, R.style.UpdateVersionCompatDialogTheme)
val mDialogView =
showBottomDialog(
R.layout.dialog_layout_pay_success,
activity,
mDialog,
0,
Gravity.CENTER
)
mDialogView.findViewById<ImageView>(R.id.id_img_close_dialog).setOnClickListener {
mDialog.dismiss()
}
mDialogView.findViewById<TextView>(R.id.id_tv_confirm_btn).setOnClickListener {
mDialog.dismiss()
}
mDialog.setCanceledOnTouchOutside(false)
mDialog.show()
}
//支付页挽留弹窗
fun showPayExitDialog(activity: Activity, cancelClick: View.OnClickListener) {
val mDialog = Dialog(activity, R.style.UpdateVersionCompatDialogTheme)
val mDialogView =
showBottomDialog(
R.layout.dialog_layout_pay_exit,
activity,
mDialog,
0,
Gravity.CENTER
)
mDialogView.findViewById<TextView>(R.id.id_tv_cancel_btn).setOnClickListener {
mDialog.dismiss()
cancelClick.onClick(it)
}
mDialogView.findViewById<TextView>(R.id.id_tv_continue_btn).setOnClickListener {
mDialog.dismiss()
}
mDialog.setCanceledOnTouchOutside(false)
mDialog.show()
}
}
\ No newline at end of file
package com.zxhl.cms.widget;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.SnapHelper;
/**
* @author (wangXuewei)
* @datetime 2022-04-13 14:47 GMT+8
* @detail :
*/
public class RecyclerViewPageChangeListenerHelper extends RecyclerView.OnScrollListener {
private SnapHelper snapHelper;
private OnPageChangeListener onPageChangeListener;
private int oldPosition = -1;//防止同一Position多次触发
public RecyclerViewPageChangeListenerHelper(SnapHelper snapHelper, OnPageChangeListener onPageChangeListener) {
this.snapHelper = snapHelper;
this.onPageChangeListener = onPageChangeListener;
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (onPageChangeListener != null) {
onPageChangeListener.onScrolled(recyclerView, dx, dy);
}
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
int position = 0;
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
//获取当前选中的itemView
View view = snapHelper.findSnapView(layoutManager);
if (view != null) {
//获取itemView的position
assert layoutManager != null;
position = layoutManager.getPosition(view);
}
if (onPageChangeListener != null) {
onPageChangeListener.onScrollStateChanged(recyclerView, newState);
//newState == RecyclerView.SCROLL_STATE_IDLE 当滚动停止时触发防止在滚动过程中不停触发
if (newState == RecyclerView.SCROLL_STATE_IDLE && oldPosition != position) {
oldPosition = position;
onPageChangeListener.onPageSelected(position);
}
}
}
public interface OnPageChangeListener {
void onScrollStateChanged(RecyclerView recyclerView, int newState);
void onScrolled(RecyclerView recyclerView, int dx, int dy);
void onPageSelected(int position);
}
}
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="#824FFF" />
<corners android:radius="20dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="180"
android:startColor="#BD8AFF"
android:endColor="#662CF5"
android:type="linear"
android:useLevel="true" />
<corners android:radius="15dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="180"
android:startColor="#BD8AFF"
android:endColor="#662CF5"
android:type="linear"
android:useLevel="true" />
<corners android:radius="15dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="180"
android:startColor="#BD8AFF"
android:endColor="#662CF5"
android:type="linear"
android:useLevel="true" />
<corners android:radius="25dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="90"
android:startColor="#FF974F"
android:endColor="#FFC887"
android:type="linear"
android:useLevel="true" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="15dp" />
<solid android:color="#F0F0F0" />
</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">
<corners android:radius="30dp" />
<solid android:color="@color/white" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".pay.view.CoinStoreActivity">
<RelativeLayout
android:id="@+id/id_rl_pay_title"
android:layout_width="match_parent"
android:layout_height="68dp"
android:background="@color/white">
<ImageView
android:id="@+id/id_img_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:padding="15dp"
android:src="@drawable/icon_fanhui_hei" />
<ImageView
android:id="@+id/id_img_coin_record"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:paddingLeft="@dimen/dp_15"
android:paddingTop="@dimen/dp_11"
android:paddingRight="@dimen/dp_15"
android:paddingBottom="@dimen/dp_11"
android:src="@drawable/icon_jilu" />
</RelativeLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/shape_coin_pay_bg">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_margin="20dp"
android:background="@drawable/shape_white_r30"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:text="My coins"
android:textColor="@color/color_666666"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_user_coins_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/icon_xiao_xingbi_wode"
android:drawablePadding="5dp"
android:gravity="center"
android:text="0"
android:textColor="@color/color_824fff"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="Coins Pack"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:text="You can ues coins to chat withgirls!"
android:textColor="@color/white"
android:textSize="18sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_pay_coin_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/id_rl_pay_title"
android:layout_width="match_parent"
android:layout_height="68dp"
android:background="@color/white">
<ImageView
android:id="@+id/id_img_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:padding="15dp"
android:src="@drawable/icon_fanhui_hei" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="12dp"
android:includeFontPadding="false"
android:text="Pay"
android:textColor="@color/color_333333"
android:textSize="18sp"
android:textStyle="bold" />
</RelativeLayout>
<LinearLayout
android:id="@+id/id_payment_info_view"
android:layout_width="match_parent"
android:layout_height="117dp"
android:layout_below="@id/id_rl_pay_title"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/id_tv_goods_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textColor="@color/color_333333"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_goods_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@drawable/shape_f0f0f0_r15"
android:paddingLeft="10dp"
android:paddingTop="3dp"
android:paddingRight="10dp"
android:paddingBottom="3dp"
android:text=""
android:textColor="@color/ffa211"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
<View
android:id="@+id/id_view_line"
android:layout_width="match_parent"
android:layout_height="5dp"
android:layout_below="@id/id_payment_info_view"
android:background="#F6F6F6" />
<TextView
android:id="@+id/id_tv_pay_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/id_view_line"
android:layout_margin="10dp"
android:text="Payment method"
android:textColor="@color/color_333333"
android:textSize="15sp"
android:textStyle="bold" />
<!--Google-->
<RelativeLayout
android:id="@+id/id_rl_google_pay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/id_tv_pay_desc"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:background="@color/white"
android:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="10dp"
android:drawableStart="@drawable/icon_google_pay"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="Google Pay"
android:textColor="@color/color_333333"
android:textSize="15sp" />
<ImageView
android:id="@+id/id_img_google_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:src="@drawable/icon_check_xuanzhong" />
</RelativeLayout>
<!--PayPal-->
<RelativeLayout
android:id="@+id/id_rl_paypal_pay"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/id_rl_google_pay"
android:layout_marginTop="5dp"
android:background="@color/white"
android:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="10dp"
android:drawableStart="@drawable/icon_paypal_pay"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="PayPal"
android:textColor="@color/color_333333"
android:textSize="15sp" />
<ImageView
android:id="@+id/id_img_paypal_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="10dp"
android:src="@drawable/icon_check_weixuanzhong" />
</RelativeLayout>
<TextView
android:id="@+id/id_tv_pay_btn"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_margin="20dp"
android:background="@drawable/shape_8857ff_bd8aff_bg_r25"
android:gravity="center"
android:text=""
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/id_rl_become_vip_title"
android:layout_width="match_parent"
android:layout_height="68dp"
android:background="@color/white">
<ImageView
android:id="@+id/id_img_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:padding="15dp"
android:src="@drawable/icon_fanhui_hei" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="12dp"
android:includeFontPadding="false"
android:text="Become VIP"
android:textColor="@color/color_333333"
android:textSize="18sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/id_img_vip_record"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:paddingLeft="@dimen/dp_15"
android:paddingTop="@dimen/dp_11"
android:paddingRight="@dimen/dp_15"
android:paddingBottom="@dimen/dp_11"
android:src="@drawable/icon_jilu" />
</RelativeLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/id_rl_become_vip_title"
android:background="#F6F6F6">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="70dp"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/id_rcl_pay_vip_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<TextView
android:id="@+id/id_tv_vip_pay_btn"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_margin="20dp"
android:background="@drawable/shape_8857ff_bd8aff_bg_r25"
android:gravity="center"
android:text="Continue"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<LinearLayout
android:id="@+id/id_ll_dialog_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:background="@drawable/shape_white_r10"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:src="@drawable/dialog_exit_photo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginTop="20dp"
android:layout_marginRight="15dp"
android:text="Over 100 girls want to become friends with you and video chat together. Are you sure you want togive up paying?"
android:textColor="@color/color_333333"
android:textSize="14sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:orientation="horizontal">
<TextView
android:id="@+id/id_tv_cancel_btn"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginEnd="15dp"
android:layout_weight="1"
android:background="@drawable/shape_824fff_r20_bg"
android:gravity="center"
android:text="Cancel"
android:textColor="@color/color_824fff"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_continue_btn"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_weight="1"
android:background="@drawable/shape_8857ff_bd8aff_bg_r25"
android:gravity="center"
android:text="Continue"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<LinearLayout
android:id="@+id/id_ll_dialog_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:background="@drawable/shape_white_r10"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Successfully"
android:textColor="@color/color_333333"
android:textSize="18sp"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:src="@drawable/icon_successfully" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="You have paid successfully"
android:textColor="@color/color_333333"
android:textSize="14sp" />
<TextView
android:id="@+id/id_tv_confirm_btn"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginLeft="30dp"
android:layout_marginTop="30dp"
android:layout_marginRight="30dp"
android:layout_marginBottom="20dp"
android:background="@drawable/shape_8857ff_bd8aff_bg_r25"
android:gravity="center"
android:text="Confirm"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
<ImageView
android:id="@+id/id_img_close_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_alignTop="@id/id_ll_dialog_view"
android:layout_alignEnd="@id/id_ll_dialog_view"
android:src="@drawable/icon_guanbi_dialog2" />
</RelativeLayout>
<?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"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/id_item_banner_img"
android:layout_width="match_parent"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:src="@drawable/vip_banner_bj_chat"
android:layout_height="wrap_content" />
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/id_ll_become_vip_view"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="10dp"
android:background="@drawable/shape_8857ff_bd8aff_bg_r10"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp">
<TextView
android:id="@+id/id_tv_item_vip_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1 Week"
android:layout_weight="1"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_item_vip_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="$2.99"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="62dp"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@drawable/shape_ffffff_r5"
android:paddingLeft="10dp"
android:paddingRight="15dp">
android:background="@drawable/shape_white_r10"
android:padding="10dp">
<TextView
android:id="@+id/id_tv_title"
android:layout_width="wrap_content"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:textColor="@color/color_333333"
android:textSize="13sp" />
<TextView
android:id="@+id/id_tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/id_tv_title"
android:textColor="@color/color_999999"
android:textSize="12sp" />
android:orientation="vertical">
<TextView
android:id="@+id/id_tv_day_member"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:textColor="@color/color_aa60ff"
android:textSize="13sp" />
<TextView
android:id="@+id/id_tv_remain_star_coins"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_999999"
android:textSize="12sp" />
<TextView
android:id="@+id/id_tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:textColor="@color/color_333333"
android:textSize="13sp" />
<TextView
android:id="@+id/id_tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_999999"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:id="@+id/id_tv_day_member"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:textColor="@color/color_aa60ff"
android:textSize="13sp" />
<TextView
android:id="@+id/id_tv_remain_star_coins"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/id_tv_day_member"
android:layout_alignParentRight="true"
android:textColor="@color/color_999999"
android:textSize="12sp" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="175dp"
android:layout_margin="10dp"
android:id="@+id/id_ll_item_coin_story_view"
android:background="@drawable/shape_white_r10"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:src="@drawable/icon_xingbi_da_wode" />
<TextView
android:id="@+id/id_tv_coin_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text=""
android:textColor="@color/color_333333"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@+id/id_tv_coin_pay_money"
android:layout_width="match_parent"
android:layout_height="33dp"
android:gravity="center"
android:layout_marginLeft="30dp"
android:layout_marginTop="25dp"
android:layout_marginRight="30dp"
android:background="@drawable/shape_8857ff_bd8aff_bg_r15"
android:text=""
android:textColor="@color/white"
android:textStyle="bold" />
</LinearLayout>
......@@ -40,5 +40,6 @@
<color name="e4d8ce">#E4D8CE</color>
<color name="ffa211">#FFA211</color>
<color name="ffc217">#FFC217</color>
<color name="color_824fff">#824FFF</color>
</resources>
\ 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