Android自定義view仿QQ的Tab按鈕動畫效果(示例代碼)
話不多說 先上效果圖

實現(xiàn)其實很簡單,先用兩張圖


一張是背景的圖,一張是笑臉的圖片,笑臉的圖片是白色,可能看不出來。實現(xiàn)思路:主要是再觸摸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;
}
}
是不是很簡單,不過不是很完美
到此這篇關(guān)于Android自定義view仿QQ的Tab按鈕動效效果(示例代碼)的文章就介紹到這了,更多相關(guān)Android仿QQ的Tab按鈕動效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Android開發(fā)教程之如何屏蔽View的重復點擊
- Android自定義view實現(xiàn)輸入框效果
- Android實現(xiàn)的RecyclerView適配器
- Android自定義View仿大眾點評星星評分控件
- Android自定義View實現(xiàn)雪花特效
- Android Filterable實現(xiàn)Recyclerview篩選功能的示例代碼
- Android 滑動Scrollview標題欄漸變效果(仿京東toolbar)
- Android自定義View實現(xiàn)圓弧進度的效果
- Android使用ScrollView實現(xiàn)滾動效果
- Android自定義view之圍棋動畫效果的實現(xiàn)
- Android自定義View實現(xiàn)分段選擇按鈕的實現(xiàn)代碼
- 詳解Android WebView監(jiān)聽console錯誤信息
- Android 處理 View 重復點擊的多種方法
相關(guān)文章
Andorid基于ZXing實現(xiàn)二維碼生成與掃描的示例代碼
ZXing是一個開源的條碼和二維碼掃描庫,它可以用于Android開發(fā)中,通過ZXing庫可以實現(xiàn)Android設(shè)備上的條碼和二維碼掃描功能,開發(fā)者可以輕松地在Android應用中集成條碼和二維碼掃描功能,本文主要給大家介紹了Andorid?ZXing實現(xiàn)二維碼,感興趣的朋友可以參考下2023-08-08
Android第三方HTTP網(wǎng)絡(luò)支持包OkHttp的基礎(chǔ)使用教程
在GitHub上開源的安卓HTTP編程包OkHttp正在積累著越來越高的人氣,這里我們就來看一下這款Android第三方HTTP網(wǎng)絡(luò)支持包OkHttp的基礎(chǔ)使用教程:2016-07-07
Android無障礙自動化結(jié)合opencv實現(xiàn)支付寶能量自動收集操作方法
opencv可以進行圖像識別,兩者結(jié)合在一起即可實現(xiàn)支付寶能量自動收集,opencv用于識別能量,無障礙服務(wù)用于模擬手勢,即點擊能量,這篇文章主要介紹了Android無障礙自動化結(jié)合opencv實現(xiàn)支付寶能量自動收集,需要的朋友可以參考下2024-07-07
Android BadTokenException異常解決案例詳解
這篇文章主要介紹了Android BadTokenException異常詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2021-08-08
Android?Studio開發(fā)實現(xiàn)簡單計算器功能
這篇文章主要為大家詳細介紹了Android?Studio開發(fā)實現(xiàn)簡單計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
怎樣實現(xiàn)android http-post方法實例說明
android http-post方法在開發(fā)中如何實現(xiàn),具體代碼如下,感興趣的朋友可以參考下哈,希望對大家有所幫助2013-06-06
Android開發(fā)筆記SQLite優(yōu)化記住密碼功能
這篇文章主要為大家詳細介紹了Android開發(fā)筆記SQLite優(yōu)化記住密碼功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07

