บทความนี้สาธิตวิธีปรับแต่ง Button ใน Android โดยการตั้งค่าข้อความและสีตัวอักษรผ่านโค้ด Java
ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่
Android Studio → File → New Project
ขั้นตอนที่ 2: Layout (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:background="#c0c0c0"
tools:context=".MainActivity">
<Button
android:id="@+id/customBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="16dp"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
ขั้นตอนที่ 3: MainActivity.java
import android.graphics.Color;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button customBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
customBtn = findViewById(R.id.customBtn);
customBtn.setText("Red Color Button");
customBtn.setTextColor(Color.parseColor("#FF0000")); // สีแดง
}
}
วิธีการตั้งค่าสีต่างๆ
1. Color.parseColor (Hex String)
button.setTextColor(Color.parseColor("#FF0000")); // แดง
button.setTextColor(Color.parseColor("#00FF00")); // เขียว
button.setTextColor(Color.parseColor("#0000FF")); // น้ำเงิน
button.setTextColor(Color.parseColor("#FFFF00")); // เหลือง
2. Color.rgb / argb (Integer Values)
button.setTextColor(Color.rgb(255, 0, 0)); // แดง button.setTextColor(Color.argb(255, 255, 0, 0)); // แดง พร้อม Alpha
3. Resource Color (แนะนำ)
ใน res/values/colors.xml:
<color name="custom_red">#FF0000</color>
ในโค้ด (API 23+):
button.setTextColor(ContextCompat.getColor(this, R.color.custom_red)); // ต้อง import support lib
หรือ Kotlin Extension:
button.setTextColor(getColor(R.color.custom_red))
การตั้งค่าพื้นหลัง Button (Background)
สีทึบ:
button.setBackgroundColor(Color.parseColor("#0000FF"));
Drawable (Shape/Gradient):
สร้าง res/drawable/custom_button.xml:
<shape xmlns:android="https://schemas.android.com/apk/res/android">
<solid android:color="#4CAF50" />
<corners android:radius="8dp" />
<padding android:left="24dp" android:right="24dp" android:top="12dp" android:bottom="12dp" />
</shape>
ใช้ในโค้ด:
button.setBackgroundResource(R.drawable.custom_button);
การปรับแต่งแบบครบถ้วน (Complete Customization)
Button btn = findViewById(R.id.customBtn);
btn.setText("Custom Button");
btn.setTextSize(18);
btn.setTextColor(Color.WHITE);
btn.setTypeface(Typeface.DEFAULT_BOLD);
btn.setAllCaps(false); // ปิด auto uppercase
btn.setBackgroundResource(R.drawable.custom_button);
btn.setPadding(32, 16, 32, 16);
MaterialButton (แนะนำสำหรับโปรเจกต์ใหม่)
ใช้ Material Components Library:
implementation 'com.google.android.material:material:1.9.0'
<com.google.android.material.button.MaterialButton
android:id="@+id/materialBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Material Button"
app:backgroundTint="@color/colorPrimary"
app:cornerRadius="16dp"
app:strokeColor="@color/white"
app:strokeWidth="2dp" />