Thiết Kế Giao Diện Ứng Dụng Android với Android Material

2872

Bạn có thể đã nghe nhiều về Android Material Design . Nó được giới thiệu trong phiên bản Android Lollipop .
Trong Android Material Design có rất nhiều thứ mới mà đã được giới thiệu như Material Theme New Widgets,Custom Shadows, Vector drawbles, Custom Animations.
Nếu bạn chưa từng làm việc với Android Material Design thì có lẽ bài viết này sẽ là sự khởi đầu tốt cho bạn. Trong bài viết này tôi sẽ giới thiệu những bước cơ bản nhất của Android Material Design. Những link bên dưới có thể giúp bạn hiểu hơn về Material Design.

Material Design Color Customization

Material Design cung cấp một bộ những thuộc tính cho việc tuỳ chỉnh Material Design Color Theme. Nhưng chúng ta chỉ sử dụng 5 thuộc tính chính trong việc tuỳ chỉnh tất cả các Theme.

  • colorPrimaryDark đây là màu cơ bản nhất của ứng dụng, chủ yếu được áp dụng cho background của notification bar.
  • colorPrimary đây là màu chính của app , màu này sẽ được áp như là toolbar background.
  • textColorPrimary đây là màu chính của text, thường áp dụng cho title của toolbar.
  • windowBackground đây là màu background mặc định của app.
  • navigationBarColor định nghĩ màu background của footer navigation bar.

Bạn có thể chọn cho ứng dụng của mình một bộ thuộc tính màu sắc mà bạn yêu thích tại đây

Creating Material Design Theme

  • Trong Android sau khi bạn đã tạo một new project.
  • Bước tiếp theo bạn cần làm là mở res ⇒ values ⇒ strings.xml và thêm những giá trị bên dưới.

Mở res ⇒ values ⇒ colors.xml và thêm những giá trị color .Nếu bạn không tìm thấy file colors.xml thì bạn hãy tạo 1 file mới với cùng tên.

  • Mở res ⇒ values ⇒ dimens.xml và thêm những giá trị bên dưới.

  • Mở styles.xml bên dưới res ⇒ values và thêm những giá trị styles bên dưới.

  • Bây giờ bên dưới res tạo một folder values-v21. Bên trong folder này tạo một file styleskhác với giá trị như bên dưới. Những styles này được áp dụng duy nhất tới Android Lollipop.

  • Bây giờ chúng ta đã có một Material Design Styles đơn giản . Để áp dụng tới Theme mởAndroidManifest.xml và chỉnh sửa lại thuộc tính của Tag <application>android:theme="@style/MyMaterialTheme" Sau khi áp dụng ThemeAndroidManifest.xml sẽ trông giống như bên dưới:

Bây giờ nếu bạn chạy project, bạn sẽ nhìn thấy color của notification bar thay đổi theo màu sắc chúng ta đã đề cập styles trên.

Adding the Toolbar (Action Bar)

Việc adding toolbar là rất dễ dàng. Tất cả những gì bạn cần làm là tạo ra 1 file layout riêng, và thêm vào file layout đó những thành phần bạn muốn hiển thị trên toolbar.

  • Tạo 1 file layout có tên là toolbar.xml dưới folder res ⇒ layout và thêm thành phầnandroid.support.v7.widget.Toolbar. Bên dưới chúng ta sẽ tạo toolbar với chiều cao và theme xác định.

  • Mở file layout của Activity MainActivity.class và add toolbar bằng cách sử dụng tag <include> như bên dưới .

  • Download icon search và import nó vào trong android studio như một Image Asset
  • Import một Image Asset vào trong Android Studio : click chuột phải trên res ⇒ New ⇒ Image Asset. Nó sẽ hiển thị một bạn 1 cửa sổ popup để import resource. Browse tới icon search mà bạn đã download về trước đó. Lựa chọn Action Bar and Tab Icons cho Asset Type và resouce name là ic_search_action .
  • Khi icon đã được import, mở menu_main.xml được đặt res ⇒ menu và thêm menu item search như bên dưới .

  • Bây giờ mở MainActivity.java và thêm những thay đổi.

Bây giờ bạn chạy ứng dụng bạn sẽ nhìn thấy kết quả như bên dưới:

Adding Navigation Drawer

Việc thêm Navigation Drawer tương tự như những cái chúng ta đã làm trước lollipop nhưng thay vì sử dụng ListView Chúng ta sử dụng RecyclerView trong material design. Vậy chúng ta hãy cùng tìm hiểu làm thế nào để xây dựng navigation drawer với recyclerview.

  • Trong project tạo 3 package name tương ứng là activities, adapter, model . Điều này sẽ làm cho bố cục tổ chức project của chúng ta thêm rõ ràng hơn.
  • Mở build.gradle và thêm dependencies. Sau đó Build ⇒ Rebuild Project.

  • Dưới package modle tạo một class tên là NavDrawerItem.java. Class này định nghĩ các item trong navigation drawer

Bên dưới res ⇒ layout Tạo một file layout tên nav_drawer_row.xml và thêm code như bên dưới. Đây là file layout cho mỗi item trong navigation drawer.

  • Tạo một file layout khác tên là fragment_navigation_drawer.xml và thêm code như bên dưới. Layout này thể hiện toàn bộ phần view của navigation drawer. Trong layout này có chứa phần header thể hiện thông tin người dùng và recyclerview thể hiện cái item .

  • RecyclerView là một customview ,vì vậy chúng ta cần 1 Adapter. Do đó bên dưới package name adapter chúng ta tạo một class NavigationDrawerAdapter.java và thêm những phần code như bên dưới.

  • Bên dưới package activities, tạo một fragment có tên FragmentDrawer.java. Trong Android Studio, tạo một fragment mới, click chuột phải activitie ⇒ New ⇒ Fragment ⇒ Fragment (Blank) và bận nhâp tên framgent bạn muốn.

Implementing Navigation Drawer Item Selection

Trong ví dụ này chúng ta đã tạo ra 3 item trong navigation drawer (Home, Friend, Message) do đó chúng ta cần tạo ra 3 fragment riêng biệt tương ứng.

  • Chúng ta tạo 1 file layout có tên là fragment_home.xml và add code như bên dưới:

  • Chúng ta cũng tạo một fragment có tên là HomeFragment.java như bên dưới:

  • Tương tự như trên chúng ta tạo 2 fragment FriendsFragment.java, MessagesFragment.java và những file layout tương ứng fragment_friends.xml and fragment_messages.xml
  • Bây giờ chúng ta mở lại MainActivity.java và thêm một số thay đổi. Phương thứcdisplayView() sẽ hiển thị những fragment tương ứng với navigation menu item được chọn.

Bây giờ là lúc chúng ta nhìn thấy thành quả bằng cách chạy ứng bạn sẽ nhìn thấy kết quả như bên dưới.

AndroidCoBan via Viblo