Commit 89957393 authored by mengcuiguang's avatar mengcuiguang

代码优化

parent 68e852c3
...@@ -12,6 +12,7 @@ import android.util.DisplayMetrics ...@@ -12,6 +12,7 @@ import android.util.DisplayMetrics
import android.view.View import android.view.View
import android.view.WindowManager import android.view.WindowManager
import android.widget.CompoundButton import android.widget.CompoundButton
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.alipay.sdk.app.OpenAuthTask import com.alipay.sdk.app.OpenAuthTask
import com.daimajia.androidanimations.library.YoYo import com.daimajia.androidanimations.library.YoYo
...@@ -29,6 +30,8 @@ import com.duben.infinitefunjia.ui.adapter.VipDialogAdapter ...@@ -29,6 +30,8 @@ import com.duben.infinitefunjia.ui.adapter.VipDialogAdapter
import com.duben.infinitefunjia.ui.widgets.* import com.duben.infinitefunjia.ui.widgets.*
import com.duben.infinitefunjia.ui.widgets.countdowntimer.CountDownTimerSupport import com.duben.infinitefunjia.ui.widgets.countdowntimer.CountDownTimerSupport
import com.duben.infinitefunjia.ui.widgets.countdowntimer.OnCountDownTimerListener import com.duben.infinitefunjia.ui.widgets.countdowntimer.OnCountDownTimerListener
import com.duben.infinitefunjia.utils.SpanUtils
import com.duben.infinitefunjia.utils.ToastUtil
import com.duben.library.utils.nodoubleclick.AntiShake import com.duben.library.utils.nodoubleclick.AntiShake
import com.jobo.alipay.AliPay import com.jobo.alipay.AliPay
import com.jobo.alipay.AlipayInfoImpl import com.jobo.alipay.AlipayInfoImpl
...@@ -49,8 +52,8 @@ import java.net.URLEncoder ...@@ -49,8 +52,8 @@ import java.net.URLEncoder
* 时间:2022/12/22 14:48 * 时间:2022/12/22 14:48
*/ */
class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
VipDialogAdapter.OnItemClickListener, VipDialogAdapter.OnItemClickListener,
CompoundButton.OnCheckedChangeListener { CompoundButton.OnCheckedChangeListener {
companion object { companion object {
const val IS_DETAIL = "IS_DETAIL"//是否从剧集详情页进入 const val IS_DETAIL = "IS_DETAIL"//是否从剧集详情页进入
...@@ -307,7 +310,7 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -307,7 +310,7 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
if (data.expireTime > 0) { if (data.expireTime > 0) {
readyGo(MainActivity::class.java) readyGo(MainActivity::class.java)
val activity = val activity =
ActivityPageManager.getInstance().getActivity(MainActivity::class.java) ActivityPageManager.getInstance().getActivity(MainActivity::class.java)
if (activity != null && activity is MainActivity) { if (activity != null && activity is MainActivity) {
activity.clickTab4Layout() activity.clickTab4Layout()
} }
...@@ -344,18 +347,33 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -344,18 +347,33 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
if (AntiShake.check(v?.id)) return if (AntiShake.check(v?.id)) return
when (v?.id) { when (v?.id) {
// R.id.ic_vip_quit -> { R.id.ic_vip_quit -> {
// if (UserManager.getInstance().newFlag && finish()
// vipList != null && vipList!!.size > 0 }
// ) { R.id.ic_free_auto -> {
// vipAdapter.setPosition(0) DialogUtils.showDialog(
// vipAdapter.notifyDataSetChanged() this,
// val vipBean = vipList!![0] SpanUtils()
// backPayYesDialog(vipBean) .append(
// } else { "1、会员属于虚拟商品,一经购买不可退换 \n" +
// finish() "2、未满18岁的未成年人需要在监护人主导、同意下进行相关付费操作;\n" +
// } "3、充值一般5分钟内到账,如未到账请在“我的”页面联系客服;"
// } )
.setForegroundColor(
ContextCompat.getColor(
this,
R.color.tv_message_recente_money
)
)
.create(),
"用户须知",
"确定",
object : DialogListener() {
override fun onClick(dialog: Dialog?, v: View?) {
dialog?.dismiss()
}
})
}
// R.id.tvVipPay -> { // R.id.tvVipPay -> {
// if (vipList != null && vipList!!.size > 0) { // if (vipList != null && vipList!!.size > 0) {
// val vipBean = vipList!![vipAdapter.getPosition()] // val vipBean = vipList!![vipAdapter.getPosition()]
...@@ -399,7 +417,7 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -399,7 +417,7 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
private fun initRvView() { private fun initRvView() {
if (vipList != null && vipList!!.size > 0) { if (vipList != null && vipList!!.size > 0) {
val linearLayoutManager = GridLayoutManager(this,2) val linearLayoutManager = GridLayoutManager(this, 2)
// linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL // linearLayoutManager.orientation = LinearLayoutManager.HORIZONTAL
rvVip.layoutManager = linearLayoutManager rvVip.layoutManager = linearLayoutManager
vipAdapter = VipDialogAdapter(vipList!!) vipAdapter = VipDialogAdapter(vipList!!)
...@@ -415,7 +433,8 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -415,7 +433,8 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
// YoYo.with(Techniques.Pulse).duration(700).repeat(-1).playOn(shimmer_text) // YoYo.with(Techniques.Pulse).duration(700).repeat(-1).playOn(shimmer_text)
// }, 200) // }, 200)
// //
// ic_vip_quit.setOnClickListener(this) ic_vip_quit.setOnClickListener(this)
ic_free_auto.setOnClickListener(this)
// tvVipPay.setOnClickListener(this) // tvVipPay.setOnClickListener(this)
// tvVipAgreement.setOnClickListener(this) // tvVipAgreement.setOnClickListener(this)
// ll_vip_alipay.setOnClickListener(this) // ll_vip_alipay.setOnClickListener(this)
...@@ -429,31 +448,16 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -429,31 +448,16 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
//设置content样式 //设置content样式
if (vipList != null && vipList!!.size > 0) { if (vipList != null && vipList!!.size > 0) {
setVipContent(vipList!![position]) val vipBean = vipList!![position]
setVipContent(vipBean)
// if (vipList!!.size > 2) { vipPresenter.getVipPayParams(
// if (position > 1 && position < vipList!!.size - 2) { payType,
// moveToCenter(view); vipBean.pid, isAliPayInstalled(),
// } else if (position in 0..1) { ENTER_TYPE_ACTIVITY
// rvVip.smoothScrollToPosition(0); )
// } else {
// rvVip.smoothScrollToPosition(vipList!!.size - 1);
// }
// }
} }
} }
private fun moveToCenter(itemView: View) {
val locationView = IntArray(2)
itemView.getLocationOnScreen(locationView)
val viewWidth = itemView.width
val wm = getSystemService(Context.WINDOW_SERVICE) as WindowManager
val dm = DisplayMetrics()
wm.defaultDisplay.getMetrics(dm)
val centerX = dm.widthPixels / 2
val distance = locationView[0] - centerX + viewWidth / 2
rvVip.smoothScrollBy(distance, 0)
}
fun wxPay(wxParanBean: WxPayParamBean, payToModel: Int) { fun wxPay(wxParanBean: WxPayParamBean, payToModel: Int) {
if (payToModel == 1) { if (payToModel == 1) {
...@@ -573,9 +577,9 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -573,9 +577,9 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
if (vipList != null && vipList!!.size > 0) { if (vipList != null && vipList!!.size > 0) {
val vipBean = vipList!![vipAdapter.getPosition()] val vipBean = vipList!![vipAdapter.getPosition()]
vipPresenter.getVipPayParams( vipPresenter.getVipPayParams(
payType, payType,
vipBean.pid, isAliPayInstalled(), vipBean.pid, isAliPayInstalled(),
ENTER_TYPE_DIALOG ENTER_TYPE_DIALOG
) )
} else { } else {
...@@ -621,19 +625,19 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -621,19 +625,19 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
when (v.id) { when (v.id) {
R.id.tv_agreement_next -> { R.id.tv_agreement_next -> {
vipPresenter.getVipPayParams( vipPresenter.getVipPayParams(
payType, payType,
vipBean.pid, isAliPayInstalled(), vipBean.pid, isAliPayInstalled(),
ENTER_TYPE_ACTIVITY ENTER_TYPE_ACTIVITY
) )
} }
} }
} }
}) })
ruleAgreementDialog!!.setText( ruleAgreementDialog!!.setText(
vipBean.remarks, vipBean.remarks,
vipBean.trialFirstDay, vipBean.trialFirstDay,
vipBean.price, vipBean.price,
vipBean.title vipBean.title
) )
ruleAgreementDialog!!.show() ruleAgreementDialog!!.show()
} else { } else {
...@@ -663,9 +667,9 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -663,9 +667,9 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
agreementPayDialog() agreementPayDialog()
} else { } else {
vipPresenter.getVipPayParams( vipPresenter.getVipPayParams(
payType, payType,
vipBean.pid, isAliPayInstalled(), vipBean.pid, isAliPayInstalled(),
ENTER_TYPE_ACTIVITY ENTER_TYPE_ACTIVITY
) )
} }
} else { } else {
...@@ -717,11 +721,11 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -717,11 +721,11 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
try { try {
// val alipayAppId = "2021004157617228" // val alipayAppId = "2021004157617228"
val path = val path =
"app_uid=" + UserManager.getInstance().userID + "&package_app=" + Constant.MINTS_PKG_NAME//这里是传的参数 "app_uid=" + UserManager.getInstance().userID + "&package_app=" + Constant.MINTS_PKG_NAME//这里是传的参数
val link = URLEncoder.encode(path, "UTF-8")//这里是encode传的参数 val link = URLEncoder.encode(path, "UTF-8")//这里是encode传的参数
val url = val url =
// "alipays://platformapi/startapp?appId=2021004129666486&page=pages/loading&query=" + link // "alipays://platformapi/startapp?appId=2021004129666486&page=pages/loading&query=" + link
"alipays://platformapi/startapp?appId=" + alipayAppId + "&page=pages/loading&query=" + link "alipays://platformapi/startapp?appId=" + alipayAppId + "&page=pages/loading&query=" + link
val uri = Uri.parse(url) // url为你要链接的地址 val uri = Uri.parse(url) // url为你要链接的地址
val intent = Intent(Intent.ACTION_VIEW, uri) val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent) startActivity(intent)
...@@ -738,9 +742,9 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -738,9 +742,9 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
val req = WXLaunchMiniProgram.Req() val req = WXLaunchMiniProgram.Req()
req.userName = "gh_439c32026e1b" // 填小程序原始id req.userName = "gh_439c32026e1b" // 填小程序原始id
req.path = req.path =
"/pages/loading?testApp1=mcg1&testApp2=mcg2" ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 "/pages/loading?testApp1=mcg1&testApp2=mcg2" ////拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。
req.miniprogramType = req.miniprogramType =
WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE // 可选打开 开发版,体验版和正式版 WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE // 可选打开 开发版,体验版和正式版
api.sendReq(req) api.sendReq(req)
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
...@@ -759,19 +763,19 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener, ...@@ -759,19 +763,19 @@ class VipForDialogActivity : BaseActivity(), VipView, View.OnClickListener,
val map: MutableMap<String, String> = HashMap() val map: MutableMap<String, String> = HashMap()
map["sign_params"] = signParams map["sign_params"] = signParams
openAuthTask.execute( openAuthTask.execute(
"com.duben.infinitefunjia.ui.activitys.VipActivity", "com.duben.infinitefunjia.ui.activitys.VipActivity",
OpenAuthTask.BizType.Deduct, OpenAuthTask.BizType.Deduct,
map, map,
{ resultCode: Int, memo: String?, bundle: Bundle -> { resultCode: Int, memo: String?, bundle: Bundle ->
if (resultCode == OpenAuthTask.OK) { if (resultCode == OpenAuthTask.OK) {
// 对业务完成的结果做后续处理 // 对业务完成的结果做后续处理
} else { } else {
// 对业务失败的结果做后续处理 // 对业务失败的结果做后续处理
showToast("支付失败") showToast("支付失败")
} }
}, },
true true
) )
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
......
...@@ -6,12 +6,14 @@ import android.view.LayoutInflater ...@@ -6,12 +6,14 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.duben.infinitefunjia.R import com.duben.infinitefunjia.R
import com.duben.infinitefunjia.mvp.model.VipBean import com.duben.infinitefunjia.mvp.model.VipBean
import com.duben.infinitefunjia.utils.BubbleUtils import com.duben.infinitefunjia.utils.BubbleUtils
import com.duben.infinitefunjia.utils.SpanUtils import com.duben.infinitefunjia.utils.SpanUtils
import com.duben.library.utils.GlideUtils
class VipDialogAdapter(val vipList: MutableList<VipBean.ListBean>) : class VipDialogAdapter(val vipList: MutableList<VipBean.ListBean>) :
RecyclerView.Adapter<VipDialogAdapter.ViewHolder>() { RecyclerView.Adapter<VipDialogAdapter.ViewHolder>() {
...@@ -38,6 +40,7 @@ class VipDialogAdapter(val vipList: MutableList<VipBean.ListBean>) : ...@@ -38,6 +40,7 @@ class VipDialogAdapter(val vipList: MutableList<VipBean.ListBean>) :
val tvVipItemMoney: TextView = view.findViewById(R.id.tvVipItemMoney) val tvVipItemMoney: TextView = view.findViewById(R.id.tvVipItemMoney)
val tvVipItemTitle: TextView = view.findViewById(R.id.tvVipItemTitle) val tvVipItemTitle: TextView = view.findViewById(R.id.tvVipItemTitle)
val tvVipItemLable: TextView = view.findViewById(R.id.tvVipItemLable) val tvVipItemLable: TextView = view.findViewById(R.id.tvVipItemLable)
val iv_vip_dialog_finger: ImageView = view.findViewById(R.id.iv_vip_dialog_finger)
} }
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
...@@ -148,7 +151,10 @@ class VipDialogAdapter(val vipList: MutableList<VipBean.ListBean>) : ...@@ -148,7 +151,10 @@ class VipDialogAdapter(val vipList: MutableList<VipBean.ListBean>) :
// R.color.color_FD7E0E // R.color.color_FD7E0E
// ) // )
// ) // )
holder.iv_vip_dialog_finger.visibility=View.VISIBLE
GlideUtils.loadRoundImageViewGif(context,"https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg/img/ic_loading.gif",holder.iv_vip_dialog_finger)
} else { } else {
holder.iv_vip_dialog_finger.visibility=View.GONE
holder.rlVipItemRoot.setBackgroundResource(R.drawable.shape_vip_adapter_none) holder.rlVipItemRoot.setBackgroundResource(R.drawable.shape_vip_adapter_none)
// holder.tvVipItemCurMoney.setTextColor( // holder.tvVipItemCurMoney.setTextColor(
// ContextCompat.getColor( // ContextCompat.getColor(
......
...@@ -76,6 +76,16 @@ object GlideUtils { ...@@ -76,6 +76,16 @@ object GlideUtils {
.into(imageView) .into(imageView)
} }
fun loadRoundImageViewGif(mContext: Context, url: String, imageView: ImageView) {
val options = RequestOptions()
.fitCenter()
.diskCacheStrategy(DiskCacheStrategy.DATA)
Glide.with(mContext)
.load(url)
.apply(options)
.into(imageView)
}
//默认加载 //默认加载
fun loadImageViewNoAnim(mContext: Context?, path: Any?, mImageView: ImageView?) { fun loadImageViewNoAnim(mContext: Context?, path: Any?, mImageView: ImageView?) {
Glide.with(mContext!!).load(path).dontAnimate().skipMemoryCache(true).into(mImageView!!) Glide.with(mContext!!).load(path).dontAnimate().skipMemoryCache(true).into(mImageView!!)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/half_transparent2" android:background="@color/half_transparent"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
...@@ -11,9 +11,43 @@ ...@@ -11,9 +11,43 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:layout_marginBottom="30dp" android:background="@drawable/shape_bg_write"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:orientation="horizontal">
<TextView
android:id="@+id/ic_free_auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="20dp"
android:text="付费须知 >"
android:textColor="@color/black"
android:textSize="16sp" />
<ImageView
android:id="@+id/ic_vip_quit"
android:layout_width="50dp"
android:layout_height="50dp"
android:padding="4dp"
android:src="@mipmap/ic_quit_yuan" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="超多精彩好剧一键解锁"
android:textColor="@color/black"
android:layout_marginBottom="4dp"
android:textSize="18sp"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvVip" android:id="@+id/rvVip"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -25,7 +59,9 @@ ...@@ -25,7 +59,9 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="horizontal"> android:orientation="horizontal"
android:visibility="gone">
<LinearLayout <LinearLayout
android:id="@+id/ll_vip_wx" android:id="@+id/ll_vip_wx"
......
...@@ -3,53 +3,51 @@ ...@@ -3,53 +3,51 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_marginLeft="20dp" android:layout_height="wrap_content"
android:layout_marginRight="20dp" android:layout_marginLeft="10dp"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout
android:id="@+id/rlVipItemRoot" android:id="@+id/rlVipItemRoot"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="110dp" android:layout_height="140dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:background="@drawable/shape_vip_adapter_none" android:background="@drawable/shape_vip_adapter_none"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_marginTop="-8dp" android:layout_height="match_parent"
android:layout_height="wrap_content" android:orientation="vertical">
android:layout_gravity="center_vertical">
<TextView <TextView
android:id="@+id/tvVipItemTitle" android:id="@+id/tvVipItemCurMoney"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginLeft="18dp" android:layout_marginTop="30dp"
android:textColor="#efbc6a" android:textColor="#efbc6a"
android:textSize="20sp"
android:layout_centerVertical="true" android:textSize="16sp"
android:textStyle="bold" tools:text="$78" />
tools:text="包年会员" />
<TextView <TextView
android:id="@+id/tvVipItemCurMoney" android:id="@+id/tvVipItemTitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true" android:layout_gravity="center_horizontal"
android:layout_alignParentRight="true" android:layout_marginTop="10dp"
android:layout_marginRight="18dp"
android:gravity="center"
android:textColor="#efbc6a" android:textColor="#efbc6a"
android:textSize="16sp" android:textSize="20sp"
tools:text="$78" /> android:textStyle="bold"
tools:text="包年会员" />
</RelativeLayout> </LinearLayout>
<TextView <TextView
android:id="@+id/tvVipItemMoney" android:id="@+id/tvVipItemMoney"
...@@ -63,6 +61,13 @@ ...@@ -63,6 +61,13 @@
tools:text="原价:123" /> tools:text="原价:123" />
<ImageView
android:id="@+id/iv_vip_dialog_finger"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_margin="20dp"
android:src="@mipmap/ic_launcher_main"></ImageView>
</FrameLayout> </FrameLayout>
<TextView <TextView
......
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