본문 바로가기

커스텀뷰3

[안드로이드] 커스텀 뷰 영역 크기 설정: onMeasure(), setMeasuredDimension() 안드로이드에서 커스텀 뷰를 만들기 위해서는 보통 아래의 작업 과정을 거친다. 1) View 를 상속 받는 커스텀 뷰 클래스를 만들고, 2) onDraw() 메서드를 오버라이드해서 Canvas 객체로 그림를 그린다. 3) 레이아웃 XML파일에 커스텀 뷰를 추가한다. 예를 들어 아래와 같이 커스텀 뷰 클래스를 작성하고 띄워보자. class CustomViewSize: View { // 생성자 constructor(context: Context?) : super(context) constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs) // onDraw() 오버라이드: 그림 그리기 override fun onDraw(canvas: .. 2021. 8. 22.
[안드로이드] 원형 프로그레스바 동적으로 조정하는 방법 안드로이드 커스텀 원형 프로그레스바의 진행률을 동적으로 설정하는 방법을 정리한다. 아이디어는 간단하다. 호(Arc)를 그려 원형 프로그레스 바를 만들고, 사용자 이벤트나 진행상황에 따라 호의 각도 값을 조정하는 것이다. 원형 프로그레스바(도넛 그래프) 자체를 만드는 방법은 아래 글을 참고하자. [안드로이드] 커스텀 원형 프로그레스 바(도넛 그래프) 만드는 방법 1. 커스텀뷰(원형 프로그레스바) 코드 1) numProgress 라는 변수를 만들어 그려질 호의 값도값을 관리한다. 2) canvas.drawArc() 메서드 호출시, sweepAngle 매개변수를 numProgress 변수로 설정한다. 3) setPregoress() 메서드를 따로 만들어서, numProgress 값을 업데이트하고, invali.. 2021. 8. 21.
[안드로이드 코틀린] View 출력 원리와 커스텀뷰 생성/사용 방법 기초 # 안드로이드 View 출력 원리 안드로이드 시스템은 XML에 정의된 View 태그와 속성을 기반으로 생성된 View 객체와 AttributeSet 객체를 이용해 화면에 View 를 그려준다. 좀더 풀어 쓰면, 레이아웃 XML에 정의된 모든 View 들은 화면에 출력 될 시점에 안드로이드에 의해 View 객체로 변환되어 메모리에 올라가며, 이 때, 각 뷰의 내부 속성(색상, 크기 등)은 AttributeSet 객체로 변환되어 View 클래스 생성자의 매개변수로 전달 된다. 이렇게 생성된 View객체를 안드로이드가 해석하여 화면에 그려준다. 참고로 XML 에 정의된 View 를 객체로 생성해 메모리에 올리는 과정을 Inflate 라고 한다. (경우에 따라 코드상에서 개발자가 직접 이 작업을 수행하기도 한다.. 2021. 8. 20.