话不多说 先上效果图

实现其实很简单,先用两张图

一张是背景的图,一张是笑脸的图片,笑脸的图片是白色,可能看不出来。实现思路:主要是再触摸view的时候同时移动这两个图片,但是移动的距离不一样,造成的错位感,代码很简单:

import android.content.Context

import android.graphics.*

import android.util.AttributeSet

import android.view.MotionEvent

import android.view.View

import com.example.dawnmvvm.R

import com.example.dawnmvvm.util.LogUtil

class MyDrawBitmap @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, defStyleRes: Int = 0) : View(context, attrs, defStyleAttr, defStyleRes) {

private var dx = 0f

private var dy = 0f

private var dx1 =0f

private var dy1 = 0f

private val bitmap: Bitmap by lazy {

BitmapFactory.decodeResource(resources, R.drawable.bg_tab);//背景

}

private val bitmap2: Bitmap by lazy {

BitmapFactory.decodeResource(resources, R.drawable.img_smile);//笑脸

}

override fun draw(canvas: Canvas?) {

super.draw(canvas)

LogUtil.e("MyDrawBitmap===x===${dx}")

LogUtil.e("MyDrawBitmap===y===${dy}")

if(dx<0){

dx=0f

}

if(dy<0){

dy=0f;

}

canvas?.drawBitmap(bitmap, dx, dy, null);//移动背景

canvas?.drawBitmap(bitmap2, dx1, dy1, null);//移动笑脸

}

override fun onTouchEvent(event: MotionEvent): Boolean {

when (event.action) {

MotionEvent.ACTION_UP-> {

dx = 0f

dy = 0f

dx1 = 0f

dy1 = 0f

}

else->{

dx = event.x/20f

dy = event.y/20f

dx1 = event.x/10f

dy1 = event.y/10f

}

}

invalidate()

return true;

}

}

是不是很简单,不过不是很完美

到此这篇关于Android自定义view仿QQ的Tab按钮动效效果(示例代码)的文章就介绍到这了,更多相关Android仿QQ的Tab按钮动效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

android的动态tab,Android自定义view仿QQ的Tab按钮动画效果(示例代码)相关推荐

  1. Android自定义view仿QQ的Tab按钮动效

    话不多说 先上效果图 实现其实很简单,先用两张图 一张是背景的图,一张是笑脸的图片,笑脸的图片是白色,可能看不出来.实现思路:主要是再触摸view的时候同时移动这两个图片,但是移动的距离不一样,造成的 ...

  2. 自定义View | 仿QQ运动步数进度效果

    项目GitHub地址 思路 固定不动的蓝色大圆弧 动画变动的红色小圆弧 中间的步数文字显示 相关的自定义属性 比如固定不动的大圆弧, 我们不能写死他的蓝色颜色属性, 要提供一个颜色的自定义属性给用户自 ...

  3. 自定义view 仿qq步数 半圆弧

    先看效果图: 自定义属性 <declare-styleable name="QQSteps"><attr name="roundWidth" ...

  4. oracle number型步数,Android自定义View仿QQ计步器

    自定义计步器 Android自定义View是Android开发中比较重要的一项,也是很多开发者比较怕的一个东西.其实只要认真去学习,自定义View其实没有那么可怕:相反的,我们还能从自定义View中找 ...

  5. android自定义计步器形状,Android自定义View仿QQ运动步数效果

    本文实例为大家分享了Android QQ运动步数的具体代码,供大家参考,具体内容如下 今天我们实现下面这样的效果: 首先自定义属性: 自定义View代码如下: /** * Created by Mic ...

  6. Android 仿芝麻信用进度条,自定义View仿支付宝芝麻信用分仪表盘效果

    image 前言 灵感来自几天前看到一位作者的仿芝麻信用自定义View的文章很不错,所以我换了一种方式来进行实现,写了旧版和新版芝麻信用分仪表盘的效果. 截图 这是我做的效果,还是有点差距的,嘿嘿. ...

  7. <android>音乐频谱显示效果 音乐播放动画 自定义view Visualizer 对接MediaPlayer 声音频率 动画效果

    最近写了一个音乐频谱显示效果的自定义view,通过Visualizer 函数对接了MediaPlayer的声源byte数据的回调,全部封装到了view的里面,外部只需要设置一个MediaPlayer即 ...

  8. Android实现仿QQ登录界面背景动画效果

    登录QQ的时候,我们会看到在登录界面的背景不是静态的,而是一段动画效果,刚开始觉得蛮好奇的,现在我们也来实现一下这种效果,实现起来还是挺简单的. 实现步骤: 1.自定义CustomVideoView类 ...

  9. 自定义View 仿QQ运动步数进度效果

    1. 概述   我记得QQ之前是有一个,运动步数的进度效果,今天打开QQ一看发现没有了.具体效果我也不清楚了,我就按照自己大概的印象写一下,这一期我们主要是熟悉Paint画笔的使用:    2. 效果 ...

最新文章

  1. c++数据结构之广义表
  2. java正则表达式及api_JAVA常用API:正则表达式regular expression
  3. Java设计模式(二十三):访问者设计模式
  4. 映射Mapper.xml文件的几种方式
  5. sketch 将动图转换为json_开源 | Picasso:sketch设计稿智能解析工具
  6. sap 分摊分配不产生会计凭证的原因_MM 物料凭证没有产生相应的会计凭证...
  7. ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段...
  8. python处理带有‘\x‘的字符串,拆分,解码,重组
  9. Log4net 配置实例
  10. Master of Typing - Tutor for Mac(打字大师—盲打练习课程)
  11. c 语言病毒源码大全,易语言病毒源码大全
  12. 虚拟机VMware14安装教程以及搭建openEuler-20.03-LTS-x86_64-dvd.iso系统教程(网盘中也包含了Ubuntu 16.04的.ios文件)
  13. 第31讲 聊天室程序
  14. Linux Shell脚本教程(bash)
  15. Stream流的学习
  16. 阿里代码规约:手动创建线程池,效果会更好哦
  17. Unraid 使用技巧集合
  18. UTF8与GBK字符编码之间的相互转换
  19. 开放平台与WeCube开源
  20. 使用七牛云进行存储图片并返回URL

热门文章

  1. 如何跳过等待更新,让Windows直接关机
  2. 【4.3 分布形态的描述】(描述性统计分析)——CDA
  3. 【商户接入常见银行卡号位数】对公卡号|对私卡号
  4. FushionChart一个酷炫的图表插件
  5. 家庭级心率监测设备 哪种才最方便有效
  6. 有3到5年开发经验的程序员,该如何规划自己
  7. 造成java.lang.ExceptionInInitializerError的原因
  8. Linux服务器开发,定时器方案红黑树,时间轮,最小堆
  9. [网络安全学习篇8]:PKI(千峰网络安全视频笔记 8 day)
  10. 深度强化学习中的episode、epoch、batch-size、iteration