Thời gian hiện tại: 22:19 - 22/12/2024
Xin chào, khách! Hãy đăng nhập để tắt quảng cáo!
Đăng nhập | Đăng ký
Trang chủ YA4R
Công cụ & bài viết hay

Lần hoạt động

Diễn đàn | Khu vực Android | Thủ thuật Android
Tìm kiếm
ʂωεεէ™  ʂωεεէ™ (94) [Off] [#]  (25310 YA) (06.08.2018 / 15:09)
Hạt cát nhỏ giữa sa mạc
25 lần được cảm ơn!
-Hello Ae
Sau Vài Ngày Lùng Sục Thì Cuối Cùng Em Cũng Đã Tìm Thấy Bài Viết Hd Nhận Biết Code Rồi
Bắt Cmn Đầu
-Bài Này Chi Tiết Hơn Topic Của Bác Picola Nhé
PHẦN 1: Nhận biết code
* Code trong android chỉ có 2 loại
Code mở: bắt đầu bằng dấu < và kết thúc bằng dấu >
Trong bài này chúng ta tạm gọi chúng là những code cha, bên trong nó có chứa 1 hoặc nhiều code khác. Đối với những code này chúng ta cần lệnh đóng chúng lại. Ví dụ:
<FrameLayout android
rientation="horizontal" android:id ="@id/notification_icon_area " ... > (code cha)
<com.android.systemui.statusbar.StatusBarIconView
android:id ="@id/moreIcon"... />
<com.android.systemui.statusbar.phone.IconMerge r
android
rientation="horizontal" android:id ="@id/notificationIcons"... />
</FrameLayout> (đóng code cha)
Code tự đóng: bắt đầu bằng dấu < và kết thúc bằng dấu /> Đối với những code này, chúng ta không thêm lệnh đóng chúng.
Ví dụ:
<com.android.systemui.statusbar.StatusBarIconView
android:id ="@id/moreIcon" ... />
<com.android.systemui.statusbar.phone.IconMerger
android
rientation="horizontal" android:id ="@id/notificationIcons" ... />
<AnalogClock android:id ="@id/clock " ... />
* Để nhận biết code và vai trò của nó, chúng ta cần chú ý đến id của nó trong dòng android:id="@id/...
- tìm code này và di chuyển nó vào ( SÓNG, WIFI ):
<include android:id = "@id/signal_cluster"
android:layout_width = "wrap_content" android:layout_height="wrap_content"
layout="@layout/tw_signal_cluster_view" />
- tìm code này và di chuyển nó vào ( PIN ):
<LinearLayout android:gravity="center" android rientation="horizontal" android:id="@id/signal_battery_cluster" android
addingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<TextView android:textSize="12.0dip" android:textColor=" #ffa6a6a6 " android:layout_gravity="center" android:id="@id/battery_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" />
<ImageView android:gravity="center" android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
- tìm code này và di chuyển nó vào ( RUNG, BÁO THỨC )
<LinearLayout android:gravity="center_vertical" android rientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
- tìm code này và di chuyển nó vào ( ICON THÔNG BÁO )
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android rientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
- tìm code này và di chuyển nó vào ( ĐỒNG HỒ SỐ )
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor=" #ff959595 " android:ellipsize="none" android:gravity="left|center" android:id="@id/clock" android
addingLeft="3.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:includeFontPadding="false" />
+ Code sóng:
<include android:id="@id/signal_cluster"... />
+ Code pin, rung, báo thức:
<LinearLayout android
rientation="horizontal" android:id="@id/system_icon_area"... > (code cha)
<LinearLayout android:gravity="center_vertical" android rientation="horizontal" android:id="@id/statusIcons"... /> (icon báo rung, blutuoch..)
<TextView android:textAppearance=" @style /TextAppearance.StatusBar.Clock" android:id="@id/percentage".... /> (phần trăm pin)
<com.android.systemui.BatteryMeterView android:id="@id/battery"... /> (icon pin)
+ Code thông báo:
<FrameLayout android
rientation="horizontal" android:id="@id/notification_icon_area"... > (code cha)
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon"... /> (1 vài ứng dụng gửi thôg báo đến nhưng ko có icon, trên android L nó thường đc hiện bằng dấu 3 chấm)
<com.android.systemui.statusbar.phone.IconMerger android rientation="horizontal" android:id="@id/notificationIcons"... /> (icon thông báo)
+ Code đồng hồ số:
<com.android.systemui.statusbar.policy.Clock android:textAppearance=" @style /TextAppearance.StatusBar.Clock" android:id="@id/clock"... />
+ Code đồng hồ kim:
<AnalogClock android:id="@id/clock"... />
+ Code ngày tháng:
<com.android.systemui.statusbar.policy.DateView android:textAppearance=" @style /TextAppearance.StatusBar.Expanded.Date" android:id="@id/date... "... />
PHẦN 2: LINEARLAYOUT
Có thể nói Layout này hay được sử dụng nhất khi thiết kế giao diện của ứng dụng. Nó đơn giản cho phép ta sắp xếp các phần tử trong nó theo dạng danh sách dọc hoặc ngang. Để LinearLayout này bố trí theo chiều dọc hay chiều ngang ta sử dụng thuộc tính android
rientation với các giá trị lần lượt là vertical hoặc horizontal.
Ví dụ sau tạo một giao diện stt 2 dòng với độ rông 50dp:
<LinearLayout android
rientation="vertical" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent"> (code mẹ)
<LinearLayout android
rientation="horizontal" android:layout_width="fill_parent" android:layout_height="25dp"> (dòng 1)
<include android:id="@id/signal_cluster" android:layout_weight="1.0"... /> (icon sóng)
<LinearLayout android
rientation="horizontal" android:id="@id/system_icon_area"... > (code cha)
<LinearLayout android:gravity="center_vertical" android rientation="horizontal" android:id="@id/statusIcons"... /> (rung, báo thức..)
<TextView android:textAppearance=" @style /TextAppearance.StatusBar.Clock" android:id="@id/percentage"... /> (phần trăm pin)
<com.android.systemui.BatteryMeterView android:id="@id/battery"... /> (icon pin)
</LinearLayout> (đóng code cha)
</LinearLayout> (đóng dòng 1)
<LinearLayout android
rientation="horizontal" android:layout_width="fill_parent" android:layout_height="25.0dip"> (dòng 2)
<FrameLayout android
rientation="horizontal" android:id="@id/notification_icon_area" android:layout_weight="1.0"... > (code cha)
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon"... />
<com.android.systemui.statusbar.phone.IconMerger android rientation="horizontal" android:id="@id/notificationIcons".... />
</FrameLayout> (đóng code cha)
<com.android.systemui.statusbar.policy.DateView android:textAppearance=" @style /TextAppearance.StatusBar.Expanded.Date" android:id="@id/date... " android:layout_gravity="center_vertical" android:gravity="center_vertical". .. /> (ngày tháng)
</LinearLayout> (đóng dòng 2)
</LinearLayout> (đóng code mẹ)
<AnalogClock android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_gravity="center" android:dial="@drawable/dial" android:hand_hour="@drawable/kim_gio" android:hand_minute="@drawable/kim_phut" /> (đồng hồ kim)
§ Phân tích:
android rientation="vertical" ở dòng code mẹ cho phép sắp xếp các View bên trong (dòng 1, dòng 2) theo chiều dọc từ trên xuống dưới.
android rientation="horizontal" ở Layout dòng 1 và dòng 2 sắp xếp các icon bên trong theo chiều ngang từ trái qua phải
android:layout_width="fill_parent" phủ đầy chiều dài layout
android:layout_height="fill_parent" phủ đầy chiều cao layout
android:layout_gravity="center_vertical" canh trung tâm chiều dọc lay out
android:gravity="center_vertical" canh nội dung bên trong (text ngày tháng)
android:dial="@drawable/dial" hướng đến file ảnh trong mục drawable
® Chúng ta cần chú ý đến thuộc tính "android:layout_weight"=¹.0 ở code sóng. Thuộc tính này gán một giá trị "quan trọng" cho View, nó nói rằng có bao nhiêu không gian mà View này sẽ chiếm trên màn hình. Một giá trị khối lượng (weight) lớn hơn cho phép nó để mở rộng để điền vào bất kỳ không gian còn lại trong View cha. View con có thể chỉ định một giá trị khối lượng, và sau đó bất kỳ không gian còn lại trong ViewGroup sẽ được gán cho các View con theo tỷ lệ khối lượng kê khai của mình. Khối lượng mặc định là 0.
Nói 1 cách dễ hiểu thuộc tính này sẽ chiếm toàn bộ không gian còn lại của dòng 1 và đẩy code nằm dưới nó (code pin, rung, báo thức...) về phía góc phải dòng 1!
Tương tự như vậy, ở cụm code thông báo cũng có thuộc tính này mục đích là đẩy code ngày tháng về phía góc phải dòng 2!
Nếu chúng ta mún đặt thêm code vào bên cạnh code sóng, cần lưu ý thêm thuộc tính "android:layout_weight" vào code đó bằng với giá trị layout_weight" ở code sóng.
Với thiết kế này chúng ta có giao diện stt:
Sóng bên trái dòng 1, pin bên phải dòng 1. Thông báo bên trái dòng 2, ngày tháng bên phải dòng 2. Đồng hồ kim ở giữa.
PHẦN 3: RELATIVELAYOUT
Đây là loại Layout rất đặc biệt. Nó cho phép chúng ta thiết lập mối liên hệ hiển thị giữa các thành phần con với nhau. Nói cách khác, một thành phần con có thể được định vị vị trí của nó so với thành phần chứa nó hoặc các thành phần cạnh nó.
Ví dụ sau tạo một giao diện stt 2 dòng với độ rông 50dp:
<LinearLayout android
rientation="vertical" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent"> (code mẹ)
<RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
<include android:id="@id/signal_cluster" android:layout_height="25dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true"... /> (icon sóng)
<LinearLayout android
rientation="horizontal" android:id="@id/system_icon_area" android:layout_height="25dp" android:layout_alignParentTop="true" android:layout_alignParentRight="true".. > (code cha)
<LinearLayout android:gravity="center_vertical" android rientation="horizontal" android:id="@id/statusIcons"... /> (rung, báo thức..)
<TextView android:textAppearance=" @style /TextAppearance.StatusBar.Clock" android:id="@id/percentage"... /> (phần trăm pin)
<com.android.systemui.BatteryMeterView android:id="@id/battery"... /> (icon pin)
</LinearLayout> (đóng code cha)
<FrameLayout android
rientation="horizontal" android:id="@id/notification_icon_area" android:layout_height="25dp" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true"... > (code cha)
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon"... />
<com.android.systemui.statusbar.phone.IconMerger android rientation="horizontal" android:id="@id/notificationIcons".... />
</FrameLayout> (đóng code cha)
<com.android.systemui.statusbar.policy.DateView android:textAppearance=" @style /TextAppearance.StatusBar.Expanded.Date" android:id="@id/date... " android:layout_height="25dp" android:layout_alignParentBottom="true" android:layout_alignParentRight="true". .. /> (ngày tháng)
<AnalogClock android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_centerInParent="true" android:dial="@drawable/dial" android:hand_hour="@drawable/kim_gio" android:hand_minute="@drawable/kim_phut" /> (đồng hồ kim)
</RelativeLayout>
</LinearLayout> (đóng code mẹ)
§ Phân tích:
android:layout_height="25dp" chiều cao 25dp
android:layout_alignParentTop="true" canh sát lề trên RL
android:layout_alignParentLeft="true" canh sát lề trái RL
android:layout_alignParentBottom="true" canh sát lề dưới RL
android:layout_alignParentRight="true" canh sát lề phải RL
android:layout_centerInParent="true" dặt vào trung tâm RL
Ngoài ra chúng ta có thể dùng thuộc tính android:layout_toRightOf="@id/..... />
android:layout_toLeftOf="@id/..... />
để đặt thêm code nằm bên cạnh 1 id nào đó
® Không như Linearlayout, Relativelayout cho phép chúng ta đặt các code tùy ý, có thể đặt vào đâu cũng đc. Relativelayout sẽ tự động sắp xếp lại thứ tự các id.
Với thiết kế này chúng ta có giao diện stt:
Sóng bên trái dòng 1, pin bên phải dòng 1. Thông báo bên trái dòng 2, ngày tháng bên phải dòng 2. Đồng hồ kim ở giữa.






Nguồn: LeeShin~TinhTe.vn

Đã chỉnh sửa bởi ʂωεεէ™ (06.08.2018 / 15:12) [1]
Bạn cần đăng nhập để bình luận
  Tổng số: 1

Cùng chuyên mục
[Hướng dẫn] Cách chèn toast popup vào file apk cực dễ trên Android
[Hướng dẫn] Cách mod xoá bỏ Quảng Cáo trong APK trên Android
Cách tạo một Popup Dialog đơn giản trên bất kỳ file apk
Tăng Dung Lượng Warp+ Cloudflare 1.1.1.1 Lên 1.000TB Miễn Phí Cho Windows/iOS/Android
Hướng dẫn trích xuất file APK từ ứng dụng đã cài đặt bằng MT Manager
Lọc theo tác giả
Xem chủ để ngoại tuyến (Offline)

Trong diễn đàn

Sắp xếp theo thứ tự từ trên xuống
Trang chủ
Diễn đàn hack game Android Việt Nam | Game mod cho Android
Developer: Võ Thanh Trung
Diễn đàn được phát triển bởi tất cả thành viên, cảm ơn các bạn!