時間比較短,直接上**了:
import android.animation.objectanimator
import android.content.context
import android.graphics.pointf
import android.util.attributeset
import android.util.log
import android.view.motionevent
import android.view.viewconfiguration
import androidx.cardview.widget.cardview
import androidx.constraintlayout.widget.constraintlayout
import me.frame.mvvm.utils.displayutils
import kotlin.math.abs
class myconstraintlayout(context: context, attrs: attributeset?) : constraintlayout(context, attrs)
//這個是繪製完執行的
override fun onfinishinflate() , durationdefault)
}/**
* new 這裡是第一種,根據view的translationy方法來上下移動整個view,而不是裡面的內容
scrollto 和scrollby 是移動view裡面的內容
* */
private var lastnewy = 0f
private var isnewtoporbottom = false
private var isnewhide = false
private var transy = 0f
private var transx= 0f
private var downpoint = pointf()
private var midden = 0f
private var defaultnegative = -550f
private var default = 550f
private var durationdefault = 200l
override fun ontouchevent(event: motionevent?): boolean else
motionevent.action_move ->
motionevent.action_up, motionevent.action_cancel -> else
} else }}
super.ontouchevent(event)}}
private fun onactionmove(event: motionevent)
} else else
}downpoint.y = event.rawy
downpoint.x = event.rawx
}//這個方法也可行,但是比較生硬沒有動畫,因為是直接繪製,用的是layou 方法也可以實現,
// override fun ontouchevent(event: motionevent?): boolean else
// }
// }
// motionevent.action_move ->
// istoporbottom = false
// } else
// layout(left, top + abs(dy).toint(), right, bottom + abs(dy).toint())
// istoporbottom = true
// }
// lasty = event.rawy.toint()
// }
// motionevent.action_cancel ->
// motionevent.action_up -> else
// ishide = false
// } else
// }
// }
// super.ontouchevent(event)
// }
// }
}
就這點**也花了很長的時間,主要的是對自定義view非常的不熟悉導致,以後還要多加熟悉。 Android自定義View 一 View的測量
想要讓系統繪製出你所需要的圖形,就必須告訴系統view的大小,所以,在繪製view時,先實現view的onmesure 方法。在測量view之前,要先了解measurespec這個類,measurespec物件中包含了測量的模式和測量的大小 measurespec.exactly 精確模式 當我們將...
自定義view 二
自定義view的最重要的乙個部分是自定義它的外觀。根據你的程式的需求,通過ondraw方法實現繪製。在ondraw中,會傳遞給你乙個canvas。canvas封裝了繪製圖形的方法。還需要自定義乙個 paint去定義顏色樣式的填充 簡單來說 canvas定義你在螢幕上畫的圖形,而paint定義顏色,樣...
自定義View筆記
1.帶刪除按鈕的listview 將觸控事件交給手勢處理器處理 return gesturedetector.ontouchevent event override public boolean ondown motionevent e return false override public vo...