Kotlin高仿微信-第23篇-个人信息-二维码名片
实现代码:
<?xml version="1.0" encoding="utf-8"?>
<layout>
<androidx.constraintlayout.widget.ConstraintLayout 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/wc_base_bg">
<TextView
android:id="@+id/qr_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="二维码名片"
android:textSize="22sp"
android:textColor="@color/black"
android:layout_marginTop="10dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="340dp"
android:layout_height="440dp"
android:padding="20dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/qr_title"
app:layout_constraintBottom_toBottomOf="parent"
android:background="@color/white">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/qr_avatar"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/wc_base_icon"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/qr_name"
app:layout_constraintStart_toEndOf="@+id/qr_avatar"
app:layout_constraintTop_toTopOf="@+id/qr_avatar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginStart="20dp"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="@color/black"
android:text=""/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/qr_result"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/qr_avatar"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="300dp"
android:layout_height="300dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
/**
* Author : wangning
* Email : maoning20080809@163.com
* Date : 2022/4/21 16:32
* Description : 生成二维码名片
*/
class QRFragment : BaseDataBindingFragment<WcFragmentPersonalQrBinding>(){
override fun getLayoutRes() = R.layout.wc_fragment_personal_qr
private val userViewModel : UserViewModel by viewModels()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
var account = DataStoreUtils.getAccount()
userViewModel.getUserLocal(account)
userViewModel.userBeanLocal.observe(viewLifecycleOwner){
qr_name.text = it.nickName
var avatarUrl = CommonUtils.Base.getReallyImage(it.avatar)
GlideUtils.load(qr_avatar, avatarUrl)
var qrCode = CommonUtils.QRCommon.QR_ADD_FRIEND + account+"###"+it.nickName+"###"+it.avatar
if(!CommonUtils.Base.isJpg(avatarUrl)){
//不是jpg等图片
var bitmap = BitmapFactory.decodeResource(WcApp.getContext().resources, R.drawable.wc_avatar_default)
processResult(qrCode, bitmap)
} else {
Glide.with(WcApp.getContext()).asBitmap().load(avatarUrl).into(object : SimpleTarget<Bitmap>(){
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
//加载成功
processResult(qrCode, resource)
}
override fun onLoadFailed(errorDrawable: Drawable?) {
super.onLoadFailed(errorDrawable)
var bitmap = BitmapFactory.decodeResource(WcApp.getContext().resources, R.drawable.wc_avatar_default)
processResult(qrCode, bitmap)
}
})
}
}
}
private fun processResult(qrCode : String, baseBitmap:Bitmap){
var bitmap = QRUtils.createQRCode(qrCode, 300, 300, baseBitmap)
qr_result.setImageBitmap(bitmap)
}
}
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序连接本地接口
