Android 사용자 정의 view QQ 를 모방 한 Tab 단추 애니메이션 효과(예시 코드)

말 이 많 지 않 으 면 먼저 효과 도 를 올 려 라.

실현 은 사실 매우 간단 하 니,먼저 두 장의 그림 을 써 라.


한 장 은 배경의 그림 이 고,한 장 은 웃 는 얼굴 그림 이 며,웃 는 얼굴 그림 은 흰색 이어서 알 아 볼 수 없 을 것 이다.실현 사고:주로 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;
 }
 
}
쉽 지 는 않 지만 완벽 하 지 는 않 아 요.
안 드 로 이 드 사용자 정의 view 가 QQ 를 모방 하 는 Tab 단추 의 효과(예시 코드)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 가 QQ 를 모방 하 는 Tab 단추 의 효과 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기