Button trong Androi
Button là một loại View, nó hiện thị nút bấm để chờ người dùng bấm vào. Button kế thừa từ TextView nên các thuộc tính, thiết lập cho TextView ở phần trước là có hiệu quả như đối với Button (Bạn nên đọc trước phần đó)
Cú pháp khai báo Button trong XML
Lấy Button và bắt sự kiện Click
Từ Activity hoặc từ đối tượng ViewGroup chứa Button, để lấy Button và bắt sự kiện khi người dùng bấm vào thì làm như sau:
Một số thuộc tính
Do Button mở rộng từ TextView nên nó có đầy đủ các thuộc tính của TextView như: android:text, android:textColor, android:textSize, android:textStyle, android:textAllCaps ... Ngoài các thuộc tính được kế thừa đó ra có một số thuộc tính cần lưu ý:
- Gán Drawable vào các biên nút bấmDùng các thuộc tính android:drawableLeft, android:drawableRight, android:drawableTop, android:drawableBottom để gán các ảnh Drawable vào biên trái, phải, trên, dưới của nút bấm.
Nếu muốn thiết lập khoảng cách các ảnh Drawable đến vùng nội dung dùng thuộc tính android:drawablePadding
Ví dụ có 2 drawable như sau:drawable/button_top_bottom.xml
(vẽ một hình chữ nhật 15dp x 100 dp)drawable/button_left_right.xml
(vẽ một hình tròn đường kính 30dp)Áp dụng vào Button như sau: - Không bo viền ButtonMặc định các nút bấm có bo viền xung quanh và có các hiệu ứng khi bấm giữ, click vào. Nếu muốn Button không vẽ viền này nhưng vẫn thấy hiệu ứng khi nhấn vào thì thiết lập
- Tùy biến nền ButtonMàu nềnCó thể gán màu nền cho Button bằng thuộc tính android:background, ví dụ:Cách thiết lập vào background giá trị màu theo HEX, theo giá trị màu như vậy thì nền đã thay đổi như mong muốn, tuy nhiên hiệu ứng khi nhấn, hiệu ứng khi Button đang focus bị mất.Nền Drawable / Ảnh Bitmapandroid:background cũng dùng để gán một Drawable cho Button, ví dụ có:
drawable/button_oval_bg.xml
(Drawable vẽ một hình oval)Gán nó cho Button bằng: android:background="@drawable/button_oval_bg"Ảnh PNG 9-PATCHNếu có các ảnh PNG đạng 9-patch (tạo ảnh 9-patch bằng các phần mềm vẽ ảnh như Photoshop, xem thêm 9-PATCH) ví dụ như:Bạn đưa vào dự án, và gán cho android:background, nó sẽ dựng nền theo dạng 9-patch (thu/phóng phần nội dung và các phần góc giữ nguyên)Nền StateListDrawableTùy loại phần tử View có nhận các trạng thái:activated
,enabled
,checked
,selected
,focused
...Với Button quan tâm đến ba trạng thái:pressed
khi nhấn vào nútselected
khi chọn nútnormal
khi trạng thái bình thườngdisabled
khi nút bấm bị vô hiệu
Ứng với mỗi trạng thái này, bạn có thể thiết lập một Drawable để Button vẽ khi ở trạng thái đó. Các trạng thái muốn gán Drawable thì định nghĩa vào một file XML theo cấu trúc:Với mỗi item định nghĩa ra một Drawable cho trạng thái muốn gán. Ví dụ, selector có 2 phần tử cho trạng thái bình thường và trạng thái khi nhấnTrong code trên thì drawable_pressed và button_normal là 2 Drawable, android:state_pressed="true" cho biết item đó dành cho trạng thái khipressed
, item không thiết lập state đó là dành cho trạng thái normal.Ngay trong các item của selector cũng có thể viết XML Drawable mà không cần gán từ ngoài như thuộc tínhandroid:drawable="@drawable/drawable_pressed"
ở trên. Ví dụ sau sử dụng selector với 2 item, một dành cho ở trạng thái bình thường, một dành cho khi bấm, Drawable của item viết ngay trong item.drawable/button_3state.xml
Gán vào Button bằngandroid:background="@drawable/button_3state"
Colored Button
Mỗi Button có thể thiết lập màu nền nhanh chóng mà vẫn giữ khả năng vẽ ở nhiều trạng thái bằng cách thiết lập: android:backgroundTint để thiết lập màu nền, đồng thời thêm style="@style/Widget.AppCompat.Button.Colored"- android:minHeight="0dp" và android:minWidth="0dp" giảm kích thước của Button (loại bỏ khoảng giống padding của Button)android:maxLines="1" thiết lập Button chỉ hiện thị một dòng Text
Không có nhận xét nào :
Đăng nhận xét