• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

[Basic4Android] Bài 6 - Resource, tùy biến giao diện control

Lập trình cho Android Phone

Moderator: tummosoft

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

[Basic4Android] Bài 6 - Resource, tùy biến giao diện control

Postby tummosoft » Tue 22/07/2014 8:04 am

Image

Khi có nhu cầu tùy biến giao diện control khác với mặc định, thông qua hai phần tử BitmapDrawable và StateListDrawable, chúng ta có thể sáng tạo ra một giao diên của riêng mình.

* Sử dụng Resources:

1- Để import các resources vào dự án. Tại góc phải bên dưới màn hinh, ta chọn tab "file", sau đó tiến hành add các file ảnh vào projetc.

2- Kéo thả các control cần tạo giao diện từ công cụ Designer

3- Tiến hành khai báo các control sẽ sử dụng trong biến toàn cục

  1. Sub Globals
  2.     Dim txtSearch As EditText
  3.     Dim btSearch As Button
  4.     Dim cd As ColorDrawable
  5.     Dim checkME As CheckBox
  6. End Sub


4- Khai báo các biến trung gian BitmapDrawable dùng để load image

[vb]Dim checked, unchecked, buttonclick, mytextbox As BitmapDrawable [/vb]

5- Gọi hình ảnh từ resources

[vb]mytextbox.Initialize (LoadBitmap(File.DirAssets, "textbox.png"))[/vb]

* Lưu ý: File.DirAssets là khu vực resources chứa các file sẽ được đóng gói kèm theo ứng dụng apk.
File.DirAssets sẽ trả về đường dẫn chứa file khi được gọi.

6- Khai báo một biến StateListDrawable để lấy và gán giá trị các trạng thái của control
Tùy theo control được tùy biến, bạn lựa chọn một events phù hợp từ StateListDrawable như: State_Unchecked, sld.State_Pressed...

[vb]Dim sld As StateListDrawable[/vb]

7- Gán trạng thái phù hợp cho mỗi hình ảnh
Ví dụ: ta có hai hình ảnh checked, unchecked sẵn dành cho việc tùy biến một checkbox.

[vb]sld.AddState(sld.State_Checked, checked)
sld.AddState(sld.State_Unchecked, unchecked)[/vb]

8- Cuối cùng sử dung biến StateListDrawable vừa thao tác.

[vb]checkME.Background = sld[/vb]

Ex: Code hoàn chỉnh

[vb]Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("layout_main")
Dim checked, unchecked, buttonclick, mytextbox As BitmapDrawable

'checked.Initialize (LoadBitmap(File.DirAssets, "checked.png"))
'unchecked.Initialize (LoadBitmap(File.DirAssets, "unchecked.png"))
buttonclick.Initialize (LoadBitmap(File.DirAssets, "button.png"))
mytextbox.Initialize (LoadBitmap(File.DirAssets, "textbox.png"))

Dim sld As StateListDrawable
'initialize statelistdrawable
sld.Initialize
'add states
'sld.AddState(sld.State_Checked, checked)
'sld.AddState(sld.State_Unchecked, unchecked)
sld.AddState(sld.State_Pressed, buttonclick)

'set background as state
'checkME.s
'checkME.Background = sld

'cd.Initialize (Colors.Green , 10dip )
'btSearch.Initialize("btSearch")
btSearch.Background = buttonclick
txtSearch.Background=mytextbox
txtSearch.TextColor=Colors.Black
End Sub[/vb]


:) Tummo Software :D
https://www.tummosoftware.com

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Basic4Android] Bài 6 - Resource, tùy biến giao diện con

Postby tummosoft » Tue 22/07/2014 8:38 am

Một số App có giao diện đẹp được tùy biến bằng Basic4Android

Phần mềm dự báo thời tiết: AmberHome Weather
Image

Phần mềm tính lương My Salary
Image

Phần mềm Stay Alive
Image
:) Tummo Software :D
https://www.tummosoftware.com

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Basic4Android] Bài 6 - Resource, tùy biến giao diện con

Postby tummosoft » Tue 22/07/2014 8:46 am

:) Tummo Software :D
https://www.tummosoftware.com

User avatar
tungblt
Điều hành viên
Điều hành viên
Posts: 550
Joined: Mon 22/12/2008 5:22 pm
Location: quy nhơn
Has thanked: 8 times
Been thanked: 77 times
Contact:

Re: [Basic4Android] Bài 6 - Resource, tùy biến giao diện con

Postby tungblt » Mon 28/07/2014 1:50 pm

Sử dụng UI KIT như thế nào ??
love

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Basic4Android] Bài 6 - Resource, tùy biến giao diện con

Postby tummosoft » Tue 29/07/2014 7:41 am

Bạn vào Photoshop, rồi tách mỗi hình các control ra 1 file png không nền.

Sau đó thì add file hình đó vào project và áp dụng
:) Tummo Software :D
https://www.tummosoftware.com

User avatar
gtdcomputer
Thành viên danh dự
Thành viên danh dự
Posts: 1296
Joined: Fri 18/07/2008 12:08 pm
Location: Kiên Giang
Has thanked: 8 times
Been thanked: 117 times
Contact:

Re: [Basic4Android] Bài 6 - Resource, tùy biến giao diện con

Postby gtdcomputer » Fri 05/09/2014 5:00 pm

Thím hướng dẫn khó hỉu voãi, Bác cố tình chia ra thành từng đoạn để hướng dẫn, nhưng xong bài hướng dẫn lại ko gôm nó lại, hay ít ra gửi bài mẫu để xem, mình hiểu từng đoạn, nhưng éo bik nó ghép lại sẽ trông thế nào. Hay tại mình ngu voãi nhễ :-?
Con người không quan tâm đến sự thật. Họ tin cái họ muốn, và về sau, cái đó sẽ trở thành sự thật

User avatar
tummosoft
Điều hành viên
Điều hành viên
Posts: 334
Joined: Mon 19/05/2014 2:23 pm
Has thanked: 7 times
Been thanked: 61 times
Contact:

Re: [Basic4Android] Bài 6 - Resource, tùy biến giao diện con

Postby tummosoft » Sat 06/09/2014 8:49 am

Đoạn code full lúc nào cũng ở dưới cùng đấy bạn.

Code mẫu đính kèm
Attachments
togglestate.zip
Ví dụ về sử dụng StateListDrawable
(345.74 KiB) Downloaded 243 times
:) Tummo Software :D
https://www.tummosoftware.com

tigerhn
Posts: 9
Joined: Fri 25/09/2009 1:52 pm

Re: [Basic4Android] Bài 6 - Resource, tùy biến giao diện control

Postby tigerhn » Tue 19/06/2018 3:55 pm

Hi tummosoft!
Minh có góp ý và câu hỏi, nhờ bác trả lời giúp
1. Để mọi người dễ tìm các bài liên quan đến 1 chủ đề, bác chèn giúp các đường link vào bài 1, VD:
[Basic4Android] Bài 1- Giới thiệu về IDE Android
[Basic4Android] Bài 2- Công cụ Designer và các control
[Basic4Android] Bài 3- Cài đặt IDE với điện thoại qua USB
.....
2. Không download được một số ví dụ trên forum B4X. Mình đã reg acount trong https://www.b4x.com/android/forum/ nhưng khi download thì toàn thấy thông báo:
"You do not have permission to access this page or file.
If you are trying to download a file and have purchased B4A then please contact support@basic4ppc.com and mention your user name."


Return to “Android”

Who is online

Users browsing this forum: Google [Bot] and 0 guests