Android BitmapShader更简易的实现刮刮乐功能,Kotlin
比这种方式 Android利用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现“刮刮乐”效果,Kotlin(2)-CSDN博客
更简单实现刮刮乐效果。
- import android.content.Context
- import android.graphics.BitmapFactory
- import android.graphics.BitmapShader
- import android.graphics.Canvas
- import android.graphics.Paint
- import android.graphics.Path
- import android.graphics.Shader
- import android.util.AttributeSet
- import android.view.MotionEvent
- import androidx.appcompat.widget.AppCompatImageView
- class MyView : AppCompatImageView {
- private var mPaint: Paint = Paint()
- private var mPath: Path = Path()
- private var mPreX = 0f
- private var mPreY = 0f
- private var mBitmapShader: BitmapShader? = null
- private val mResId = R.mipmap.p
- constructor(ctx: Context, attributeSet: AttributeSet) : super(ctx, attributeSet) {
- mPaint.style = Paint.Style.STROKE
- mPaint.strokeWidth = 50f
- val bmp = BitmapFactory.decodeResource(resources, mResId, null)
- mBitmapShader = BitmapShader(bmp, Shader.TileMode.CLAMP, Shader.TileMode.REPEAT)
- mPaint.setShader(mBitmapShader)
- }
- override fun onDraw(canvas: Canvas) {
- super.onDraw(canvas)
- canvas.drawPath(mPath, mPaint)
- }
- override fun onTouchEvent(event: MotionEvent): Boolean {
- when (event.action) {
- MotionEvent.ACTION_DOWN -> {
- mPath.moveTo(event.x, event.y)
- mPreX = event.x
- mPreY = event.y
- return true
- }
- MotionEvent.ACTION_MOVE -> {
- val endX = (mPreX + event.x) / 2
- val endY = (mPreY + event.y) / 2
- mPath.quadTo(mPreX, mPreY, endX, endY)
- mPreX = event.x
- mPreY = event.y
- }
- MotionEvent.ACTION_UP -> {
- }
- }
- postInvalidate()
- return super.onTouchEvent(event)
- }
- }
复制代码
进入后起首是红色,随动手指在屏幕上划过,原图出现。
Android利用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现“刮刮乐”效果,Kotlin(2)-CSDN博客文章欣赏阅读630次,点赞27次,收藏14次。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,假如被合并的第二张图片宽度和第一张差别,那么就以第一张图片的宽度为准线,对第二张图片举行缩放。Android Bitmap保存成至手机图片文件,Kotlin_android bitmap保存图片-CSDN博客。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,假如被合并的第二张图片宽度和第一张差别,那么就以第一张图片的宽度为准线,对第二张图片举行缩放。 https://blog.csdn.net/zhangphil/article/details/144536192Android利用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果,Kotlin(3)-CSDN博客文章欣赏阅读493次,点赞5次,收藏5次。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,假如被合并的第二张图片宽度和第一张差别,那么就以第一张图片的宽度为准线,对第二张图片举行缩放。Android Bitmap保存成至手机图片文件,Kotlin_android bitmap保存图片-CSDN博客。Android拼接合并图片生成长图代码实现合并两张图片,以第一张图片的宽度为标准,假如被合并的第二张图片宽度和第一张差别,那么就以第一张图片的宽度为准线,对第二张图片举行缩放。 https://blog.csdn.net/zhangphil/article/details/144595380
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |