Commit 09cd095f authored by wanglei's avatar wanglei

...

parent 2649c8d5
......@@ -2,6 +2,7 @@ package com.base.browserwhite.ui.activity.scanqrc
import android.Manifest
import android.graphics.Color
import androidx.activity.addCallback
import androidx.camera.core.AspectRatio
import androidx.camera.core.Camera
import androidx.camera.core.CameraSelector
......@@ -39,6 +40,9 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.ivQrc.overlay
if (checkCameraPermission()) {
initCamera()
} else {
......@@ -55,6 +59,17 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
}
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finishToMain()
}
binding.ivGuanbi.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
}
private fun initCamera() {
cameraExecutor = Executors.newSingleThreadExecutor()
......
package com.base.browserwhite.ui.views
import android.content.Context
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.PorterDuff
import android.graphics.PorterDuffXfermode
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
class TransparentSrcInImageView : AppCompatImageView {
private lateinit var paint: Paint
constructor(context: Context) : super(context) {
intiPorterDuffMode()
}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
intiPorterDuffMode()
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
intiPorterDuffMode()
}
private fun intiPorterDuffMode() {
// 设置混合模式
val xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
paint = Paint()
paint.setXfermode(xfermode)
setLayerType(LAYER_TYPE_SOFTWARE, paint) // 需要软件绘制
}
override fun onDraw(canvas: Canvas) {
// 先绘制背景(如果有)
super.onDraw(canvas)
// 绘制图片,使用自定义的混合模式
drawBitmap(canvas)
}
private fun drawBitmap(canvas: Canvas) {
val drawable = getDrawable()
val bitmap = drawableToBitmap(drawable)
if (bitmap != null) {
canvas.drawBitmap(bitmap, 0f, 0f, paint)
}
}
private fun drawableToBitmap(drawable: Drawable): Bitmap? {
if (drawable is BitmapDrawable) {
return drawable.bitmap
}
var bitmap: Bitmap? = null
try {
bitmap = Bitmap.createBitmap(drawable.intrinsicWidth, drawable.intrinsicHeight, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
drawable.setBounds(0, 0, canvas.width, canvas.height)
drawable.draw(canvas)
} catch (e: Exception) {
e.printStackTrace()
}
return bitmap
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/s_shoudiant_s" android:state_selected="true" />
<item android:drawable="@mipmap/s_shoudiant_n" android:state_selected="false" />
</selector>
\ No newline at end of file
......@@ -12,4 +12,43 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/iv_guanbi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:layout_marginEnd="16dp"
android:src="@mipmap/w_guanbi"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black_a_70"
tools:ignore="ContentDescription" />
<com.base.browserwhite.ui.views.TransparentSrcInImageView
android:id="@+id/iv_qrc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/waikuang"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_shoudian"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="35dp"
android:background="@drawable/bg_shoudian_selector"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_qrc"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -2,4 +2,5 @@
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="black_a_70">#B3000000</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