반응형
공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
안드로이드에서 화면 위에 그림을 그리는 방법에 대해 알아봅니다.
저는 간단하게 좌표에 점을 찍는 포스팅을 하려고 합니다.
정말 간단합니다.
먼저 레이아웃을 준비합니다.
activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"> <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" tools:context="altong.mon.mybeaconscanner.MainActivity"> <android.support.constraint.ConstraintLayout android:id="@+id/mapConstLayout" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" android:layout_width="0dp" android:layout_height="match_parent"> </android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout> </layout> | cs |
저희는 점을 id가 mapConstLayout인 ConstraintLayout에 그릴거에요.
그리고 MainActivity.java 클래스 안에
PointView 라는 View를 상속 받는 클래스를 선언해줍니다.
저는 이 뷰에 배경 이미지를 넣고
onDraw()메서드를 오버라이딩해서
점을 찍었습니다.
canvas.drawPoint에서 첫 번째, 두 번째 값은 각 x좌표, y좌표 값입니다.
저는 V20을 쓰고 있습니다. 1440 X 2560 해상도를 가집니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | private class PointView extends View { Paint paint = new Paint(); public PointView(Context context) { super(context); setBackground(getResources().getDrawable(R.drawable.nnnuri)); } @Override protected void onDraw(Canvas canvas) { paint.setColor(Color.BLACK); paint.setStrokeWidth(50); canvas.drawPoint(740, 120, paint); } } | cs |
그리고 onCreate() 내부 블록에서
1 | binding.mapConstLayout.addView(new PointView(this)); | cs |
이렇게 해주면 화면에 점이 찍혀있는 걸 확인할 수 있습니다.
Canvas 클래스와 Paint 클래스의 자세한 내용들은 공식 문서에서 확인하시면 되겠습니다.
Canvas : https://developer.android.com/reference/android/graphics/Canvas
Paint : https://developer.android.com/reference/android/graphics/Paint
이상입니다.
감사합니다.
반응형