ภาพรวม
บทความนี้สาธิตการสร้างไอคอนเครื่องหมายถูก (Checkmark/Tick) ภายในวงกลมสีเขียว ด้วย Vector Drawable
ขั้นตอนที่ 1: สร้างโปรเจกต์
Android Studio → File → New Project → Empty Activity
ขั้นตอนที่ 2: Layout (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:layout_marginTop="30dp"
tools:context=".MainActivity">
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/checkmark_circle" />
</LinearLayout>
ขั้นตอนที่ 3: Vector Drawable (res/drawable/checkmark_circle.xml)
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="https://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<!-- วงกลมพื้นหลัง -->
<path
android:fillColor="#6AC259"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2z" />
<!-- เครื่องหมายถูก (สีขาว) -->
<path
android:fillColor="#FFFFFF"
android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41L9,16.17z" />
</vector>
คำอธิบาย Path Data
วงกลม (Circle)
M12,2 C6.48,2 2,6.48 2,12 S4.48,22 12,22 S22,17.52 22,12 S17.52,2 12,2 Z
- M12,2 - เริ่มที่ (12,2) จุดบนสุด
- C6.48,2 2,6.48 2,12 - Cubic Bezier curve ไปมุมซ้ายล่าง
- S... - Smooth curve ต่อเนื่อง
เครื่องหมายถูก (Checkmark)
M9,16.17 L4.83,12 L3.41,13.41 L9,19 L21,7 L19.59,5.59 L9,16.17 Z
- สร้างรูป V shape ที่โค้งเล็กน้อย
ปรับแต่งสีและขนาด
<vector ...>
<path android:fillColor="#4CAF50" android:pathData="..." /> <!-- วงกลมสีเขียว -->
<path android:fillColor="#FFFFFF" android:pathData="..." /> <!-- ถูกสีขาว -->
</vector>
ใช้เป็น State List Drawable (เปลี่ยนสีตามสถานะ)
res/drawable/checkmark_state.xml:
<selector xmlns:android="https://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/checkmark_circle_green" />
<item android:state_enabled="false" android:drawable="@drawable/checkmark_circle_gray" />
<item android:drawable="@drawable/checkmark_circle_outline" />
</selector>
การใช้งาน
- ImageView แสดงสถานะสำเร็จ
- Checkbox/RadioButton custom
- Button indicator
- RecyclerView item decoration
ทดสอบ
รันแอป จะเห็นวงกลมสีเขียวพร้อมเครื่องหมายถูกสีขาวตรงกลาง ขนาด 100x100dp