Android 화판 개발 의 기본 화필 기능
이것 은 화판 시리즈 의 첫 번 째 편 으로 한 걸음 한 걸음 시작 하여 간단 한 화판 부터 기능 이 약간 완 비 된 화판 까지 예 를 들 어 기본 화필,지우개,배경,문자,취소,반 취소,보존 등 이다.
이 글 은 사용자 정의 View 에 대해 어느 정도 알 아야 한 다 는 전제 에서 가장 간단 한 화판 을 실현 합 니 다.
kotlin 언어 를 썼어 요.
실현
분석 은 어떻게 이 루어 집 니까?붓 과 Path 를 정의 한 다음 화면 을 만 질 때 손가락 을 움 직 이면 서 path 의 미끄럼 을 통 해 그립 니 다.이것 은 가장 간단 한 화필 기능 을 완성 했다.
다음 몇 십 줄 코드 는 이것 을 완성 합 니 다.
class TPView(context: Context,attr:AttributeSet ) : View(context,attr) {
private var preX: Float = 0.0f // x
private var preY: Float = 0.0f // y
var mPath = Path() //path
//
private var mPaint = Paint(Paint.ANTI_ALIAS_FLAG or Paint.DITHER_FLAG)
init {
//
mPaint.style = Paint.Style.STROKE
//
mPaint.color = Color.RED
//
mPaint.strokeCap = Paint.Cap.ROUND
//
mPaint.strokeWidth = 10f
//View
setBackgroundColor(Color.WHITE)
}
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)
// , ACTION_DOWN
preX = event.x
preY = event.y
}
MotionEvent.ACTION_MOVE -> { //
// , ,
mPath.quadTo(preX,preY,event.x,event.y)
preX = event.x
preY = event.y
}
}
// , onDraw
invalidate()
return true
}
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.