Xây dựng ứng dụng Ai là triệu phú đơn giản trên android

37 1.5K 3
Xây dựng ứng dụng Ai là triệu phú đơn giản trên android

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đại Học Bách Khoa Hà Nội Viện Công Nghệ Thông Tin & Truyền Thông Bộ Môn : Project Đề Tài : Lập trình Android Giảng Viên Hướng Dẫn :TS Bành Thị Quỳnh Mai Sinh Viên Thực Hiện : Vũ Ngọc Tiến - 20133971 PROJECT1 Mục Lục Mục lục -2 Lời Nói Đầu -3 1,Các thành phần project android 2,Một số chương trình đơn giản -11 Lập trình Android Page PROJECT1 Lời Nói Đầu Từ lâu , người thời kì chưa có công nghệ , thứ đầu phải thực thông qua tính toán đơn kinh nghiệm người, cách mạng công nghiệp diễn mang đến cho nhân loại máy móc thiết bị giúp người tối thiểu hóa vất vả lao động chân tay lao động trí óc Từ sáng tạo người máy vi tính đời , phát triển bước kèm theo khái niệm hệ điều hành Và thời nay, hệ điều hành không xa lạ với người chúng ta, máy vi tính đơn mà người nghiên cứu ứng dụng vào thiết bị thông minh điện thoại, máy tính bảng Một số hệ điều hành Android Android hệ điều hành thông minh với cực nhiều chức tương tác với người dùng , đa hóa điện thoại đơn , lập trình Android theo phát triển không ngừng dần trở nên rộng rãi Bài báo cáo sau trình bày nghiên cứu lập trình Android số chương trình minh họa chạy hệ điều hành Về lịch sử phát triển cài đặt em xin phép không nói đến Chắc chắn báo cáo tránh khỏi thiếu sót , kính mong giáo thầy cô bạn Xin chân thành cảm ơn !!!!!! Lập trình Android Page PROJECT1 Các thành phần project android Bắt đầu với việc tạo project android , ta vào menu File > new > android application project , nhập tên project tạo bình thường Có nhiều trường hợp tạo project để SDK có hỗ trợ android-support-v7 gặp lỗi lỗi khó sửa nên tạo project nên để minimun required SDK API15 không hỗ trợ support-v7 nên không gặp lỗi tốc độ xử lí nhanh nhiều Sau hinh ảnh ta tạo xong project android : project android sau tạo mở tab Activity , file xml file java ta thiết kế xử lí giao diện project file xml , file xml có phần , phần graphics layout để ta kéo thả thiết kế trực tiếp giao diện project Lập trình Android Page PROJECT1 Trên component mà phần mềm hỗ trợ người dùng thiết kế giao diện , cần component người dùng việc kéo thả vào giao diện , nhiên nhiều lúc giao diện khó thiết kế vào vị trí mà ta mong muốn mặc định layout , từ ta phải thiết kế phần code file xml : Phần code giao diện Vậy layout mà lại có mặc định ? Layout thực chất giống ContentPane java desktop , phần để đưa component lên quản lí theo trật tự định XML file có loại layout : • • • • • FrameLayout: Layout đơn giản nhất, thêm thành phần vào góc bên trái hình LinearLayout: thêm thành phần theo chiều định (ngang dọc) Đây layout sử dụng nhiều RelativeLayout: thêm thành phần dựa mối quan hệ với thành phần khác với biên layout TableLayout: thêm thành phần dựa lưới ô ngang dọc AbsoluteLayout: thêm thành phần dựa theo tọa độ x, y Sơ qua XML(Extensible Markup Language) , thật việc thiết kế giao diện với xml không chức xml Bản chất XML sở liệu lưu trữ theo dạng thẻ , cú pháp xml gần tương tự với ngôn ngữ quen thuộc khác html có điều thẻ html định nghĩa sẵn xml hoàn toàn người dùng định nghĩa đoạn code xml Lập trình Android Page PROJECT1 xml thường sử dụng để lưu trữ liệu online (VD RSS báo điện tử ) tốc độ truy cập lấy liệu nhanh so với loại CSDL khác SQL hay Oracle, nhiên tính bảo mật thấp đoạn RSS báo vnexpress Đó sơ qua file Activity_main.xml, Nhìn chung layout giao diện bất động tự sinh kiện ta cần đến file activity project tạo sẵn cho ta file MainActivity.java thường sau tạo project android , ấn vào file ta thấy bị lỗi chương trình không tìm file R , file R file nằm packet map với packet chứa file java mà làm việc với project ta viết file R file mặc định chứa tất biến id component file xml kể , trung gian kết nối file java file xml Để sửa lỗi cần làm sau : menu > project > clean Lập trình Android Page PROJECT1 Ta thấy file R.java xuất , từ lỗi fix Activity thực chất file.java extens lớp đối tượng activity có sẵn thư viện android (vì có lệnh super.OnCreate(savedÍntanedState)) , file activity ta bắt kiện xảy thực hoạt động layout , project có nhiều layout nên cần nhiều activity để map với layout xử lí kiện diễn layout Activity phần quan trọng đóng vai trò xây dựng ứng dụng Android Hệ điều hành Android quản lý Activity theo dạng stack: Activity khởi tạo, xếp lên đầu stack trở thành running activity, Activity trước bị tạm dừng hoạt động trở lại Activity giải phóng Vòng đời activity bao gồm trạng thái : • • • • active (running): Activity hiển thị hình paused: Activity hiển thị (visible) tương tác (lost focus) VD: activity xuất hiển thị giao diện đè lên activity cũ, giao diện nhỏ giao diện activity cũ, ta thấy phần giao diện activity cũ lại tương tác với stop: Activity bị thay hoàn toàn Activity tiến đến trạng thái stop killed: Khi hệ thống bị thiếu nhớ, giải phóng tiến trình theo nguyên tắc ưu tiên Các Activity trạng thái stop pausedcũng bị giải phóng hiển thị lại Activity phải khởi động lại hoàn toàn phục hồi lại trạng thái trước Lập trình Android Page PROJECT1 Biểu dồ trạng thái activity Ngoài Activity chương trình Android có thành phần quan trọng khác • • • • Service: thành phần chạy ẩn Android Service sử dụng để update liệu, đưa cảnh báo (Notification) không hiển thị cho người dùng thấy Content Provider: kho liệu chia sẻ Content Provider sử dụng để quản lý chia sẻ liệu ứng dụng Intent: tảng để truyền tải thông báo Intent sử dụng để gửi thông báo nhằm khởi tạo Activity hay Service để thực công việc bạn mong muốn Ngoài Intent có chức hay khác truyền tham số Activity thông qua phương thức put get Notification: đưa cảnh báo mà không làm cho Activity phải ngừng hoạt động Tiếp đến thành phần khác project : Lập trình Android Page PROJECT1 • • • • • • thư mục Android 5.0.1 Android private libraries chứa thư viện hỗ trợ project android Thư mục res thư mục chứa tài nguyên project android , có thư mục nhỏ drawable-thư mục chứa hình ảnh icon dùng cho project, với độ phân giải từ thấp đến cao có thư mục drawable tương ứng Thư mục layout chứa file activity_main.xml mà ta nói với tất file layout khác mà ta tạo vào thiết kế cho project Tiếp thư mục menu , thư mục có chứa file main.xml , file file chứa toàn thông tin item menu chương trình ta Sau thu mục values chứa file.xml lưu giá trị mà ta định nghĩa để sử dụng nhiều chương trình Quan trọng file AndroidManifest.xml , coi file điều khiển ứng dụng android , tất activity muốn thực phải thông qua file Trước bắt tay vào làm số chương trình nhỏ có kĩ thuật đặc biệt quan trọng cần phải biết , kĩ thuật LogCat LogCat dùng để thay cho câu lệnh System.Out.Println java thông thường , cửa sổ console dùng với chức khác hiển thị trạng thái tải chương trình lên máy ảo Có nhiều loại LogCat thường sử dụng Log.d Cú pháp đơn giản Log.d("TagName","Câu muốn in ra"); Để sử dụng logcat ta phải khai báo , bât sổ logcat ấn vào dấu “+” Lập trình Android Page PROJECT1 Một hộp thoại ta copy tagName mà ta đặt patse vào ô : Khi ta chạy đến câu lệnh logcat dòng chữ ta muốn in tagname của sổ logcat Lập trình Android Page 10 PROJECT1 Vào phần - Khi ta bắt đầu , chương trình tự động lấy random câu hỏi có độ khó tăng dần lên cao , câu có đáp án , chọn màu xanh sang câu , sai đáp án chọn biến thành màu đỏ đáp án trở thành màu xanh điểm người chơi vượt qua số điểm cao thid lưu lại tên số điểm người Chúng ta bắt đầu thiết kế giao diện đơn giản sau : Phần TextView hiển thị câu hỏi , Button tương ứng với đáp án để lựa chọn Từ tạo Activity với component tương ứng , tất nhiên thiếu biến SQLiteDatabase Lập trình Android Page 23 PROJECT1 ta có cần thêm số biến phụ , biến ta tìm hiểu sau Và đương nhiên ta phải khai báo activity file manifest Ý tưởng người chơi trả lời gọi lại layout thay vào câu hỏi hoàn toàn lấy từ csdl với độ khó tương ứng với số thứ tự câu hỏi người chơi Vậy người chơi bắt đầu trò chơi ActivityMain phải truyền vào cho Activity số thứ tự tiếp người chơi trả lời số thứ tự tiếp tục tăng lên truyền cho activity gọi ra, trả lời sai số thứ tự tự động restart trở MainLayout Vậy để giải việc ta tạo class tên Variable class có ArrayList String , ta dựa vào size ArrayList để biết số câu hỏi trả lời , từ truyền số tứ tự câu hỏi cho activity biến String key để lấy giá trị Trở lại với ActivityMain ta bắt kiện cho nút bắt đầu chơi , ấn vào nút xuất dialog hỏi người chơi sẵn sàng chơi chưa , ấn “yes” bắt đầu vào trò chơi , “no” thay đổi Như , ta lại gọi đến AlertDialog , người chơi chọn “yes” ta mở Activity câu hỏi , đồng thời sử dụng putExtra để truyền sang cho Activity số tương đương với câu hỏi số để thuận tiện trình gọi lại Activity câu hỏi ta sử dụng biến ArrayList class Variable vừa tạo , ta add thêm vào List số để size tăng lên , sau truyền size cho Activity câu hỏi : Vậy xong ActivityMain , xử lí sang Activity câu hỏi Việc phải làm sau khai báo đầy đủ biến lấy giá trị vừa truyền ActivityMain sang , số Lập trình Android Page 24 PROJECT1 sử dụng làm số thứ tự câu hỏi hay độ khó câu hỏi , ta dựa vào lấy toàn câu hỏi có độ khó csdl : Vậy ta có tất câu hỏi với độ khó tương đương số thứ tự câu hỏi mà người chơi trả lời đến Từ ta random số câu hỏi đưa hình Ta tạo class Controller ,trong Controller ta viết phương thức nhận vào tập ghi Cursor , đưa toàn đối tượng vào list sau random trả câu hỏi cho Activity: Từ hiển thị câu hỏi lên layout : Lập trình Android Page 25 PROJECT1 Giờ đến phần bắt kiện cho đáp án, ấn vào đáp án lên dialog hỏi xem người chơi có chắn chọn đáp án không, có check xem đáp án có không , màu xanh , sai , đáp án màu đỏ đáp án đồng thời màu xanh Nếu người chơi trả lời xem hết câu hỏi chưa , hết lưu điểm người chơi lại , chưa sang tiếp câu sau ,ngược lại người chơi trả lời sai ta so sánh số điểm mà người chơi đạt , lớn highScore lưu điểm , không trở lại MainActivity Để biết người chơi ấn vào đáp án ta sử dụng biến flag , biến người chơi ấn vào nút , =2 ấn vào nút tương tự với nút 3,4 Tiếp đến viết hàm click() để bắt kiện xảy người chơi ấn vào đáp án hàm check() để kiểm tra tính sai đáp án đó, ta cần hàm open() close() để đóng mở Activity, hàm so sánh ss() để so sánh với HighScore Hàm click() Lập trình Android Page 26 PROJECT1 Hàm check() Lập trình Android Page 27 PROJECT1 Hàm open(),close() hàm so sánh Hàm click() xuất dialog hỏi người dùng chắn đáp án chưa , nguoiwf dùng ấn “yes” gọi đến hàm check() , flag biến toàn cục nên hàm dùng , hàm check check đáp án với đáp án người chơi lụa chọn , gọi hàm open() , sai gọi hàm so sánh, hàm so sánh trả true tức điểm người chơi cao HighScore mở Activity (chúng ta nói activity sau), không gọi hàm close() để trở MainActivity đồng thời restart lại số thứ tự câu hỏi Hàm open() add thêm vào Variable.List ta để tăng số thứ tự câu hỏi lên truyền cho Activity gọi , tạm thời coi game có 15 câu hỏi hàm kiểm tra số thứ tự qua 15 mở Activity khác nhằm mục đích cho người chơi lưu điểm, ngược lại ta gọi lại Activity số thứ tự câu hỏi thay đổi Và Activity khởi tạo , lấy số thứ tự thay đổi Hàm close() đóng toàn child activity trở MainActivity Hàm ss() (so sánh) lấy hiệu highScore từ bảng high bên csdl so sánh với số điểm , số điểm híghScore xóa số điểm highScore lưu csdl trả vè true, ngược lại trả false Để ý chút , hàm click() có sử dụng đến Thread Thread có mục đích nhắm làm chậm chương trình , thường game kiểu chọn xong đáp án có nhạc hay âm bào chọ hay sai song song với việc đáp án xanh đỏ , dùng thread nhằm mục đích chèn thêm âm vào , âm kết thúc chuyển sang câu sau (ở em sử dụng với mục đích làm chậm trình chuyển câu cho chuyên nghiệp chút sau có phát triển thêm âm vào được) Và kết : Lập trình Android Page 28 PROJECT1 chọn chọn sai Ngoài tính nhỏ game người chơi ấn vào nút BACK điện thoại dialog hỏi xem người chơi có thực muốn dừng chơi không Để cài đặt tính ta phải bắt kiện người chơi ấn vào nút BACK Đầu tiên ta override phương thức OnKeyDown Activity : Ở ta bắt kiện người chơi ấn vào nút BACK: Và người chơi ấn vào nút back Dialog xuất , người chơi chọn “yes” số thứ tự câu hỏi restart trở lại ActivityMain Lập trình Android Page 29 PROJECT1 Vậy xong phần câu hỏi , đến phần lưu điểm , người chơi đạt highScore người chơi trả lời hết toàn số câu hỏi xuất Activity dạng Dialog để người chơi nhập tên vào lưu lại số điểm cao Ta thiết kế giao diện đơn giản khai báo file manifest dạng dialog: Bắt đầu vào xử lí Activity Đầu tiên , khai báo biến: ta lấy số điểm mà người chơi vừa đạt đưa vào đối tượng Cuối bắt kiện cho nút “kết thúc” , Khi người chơi bấm nút kết thúc ta lấy thông tin từ editText mà người chời vừa nhập vào ghi xuống csdl sau trở lại mainActivity đồng thời restart lại số thứ tự câu hỏi 0, người chơi không nhập mà bấm nút lên thông báo Lập trình Android Page 30 PROJECT1 Và kết quả: ban đầu không nhập tên sau nhập kết thúc Như ta hoàn thiện game trắc nghiệm đơn giản :) Nhìn lại game kiểu mà đặc trưng quen thuộc trợ giúp chán Vậy ta xây dựng thêm vài giúp cho game Đầy tiên quay lại với layout hiển thị câu hỏi , ta thết kế thêm cho nút tương ứng vói trợ giúp : 50-50, gọi điện , hỏi ý kiến khán giả, đổi câu hỏi Lập trình Android Page 31 PROJECT1 Việc cần làm bắt kiện cho nút này, điểm chung nút sử dụng lần lượt chơi Ta dựa vào phương thức setEnabled Button để thực điều Đầu tiên đưa alertDialog vào để hỏi người chơi xem có chắn muốn dùng trợ giúp không , ấn “yes” ta setEnabled cho nút false Bắt đầu với nút 50-50 : Đầu tiên ta gắn biến flagh1=true, biến có công dụng ta nói sau Tiếp gọi phương thức setEnabled(false) để nút sử dụng lần Ta lấy đáp án chuyển sang kiểu int để dễ sử dụng Sau lấy đáp án ta đưa tất đáp án lại vào List , tạm thời setText cho nút đáp án thành rỗng Enabled=false Lập trình Android Page 32 PROJECT1 Hàm but trả nút dựa theo số , ta truyền vào số hàm trả cho ta nút đáp án tương tự với nút đáp án khác, từ truyền vào số list ta gọi nút tương ứng thao tác nút Tiếp theo nút “gọi điện thoại” , ấn vào nút số nhân vật lên , người chơi lựa chọn nhân vật mà muốn , họ đưa đáp án họ cho Ta tạo layout , sử dụng nhiều hơn, tùy ý component ImageView để đưa ảnh người muốn có vào Bắt đầu tạo Activity để xử lí Trước , với nút 50-50 ta setEnabled=false ấn vào nút , sau truyền cho Activity đáp án câu hỏi thời , ý tưởng có số nhân vật nói đáp án , số nói đáp án (Thật dùng thuật toán tôt cách làm này) Quay lại Activity vừa tạo , ta khai báo biến ImageView liên kết chúng với layout.: Lập trình Android Page 33 PROJECT1 khai báo liên kết Tiếp bắt kiện cho ImageView , người chơi ấn vào xuất Dialog với đáp án mà nhân vật trả lời tất nhiên ta lấy đáp án mà Activity trước truyền sang thông qua Bundle in đáp án vào câu trả lời nhân vật Tiếp đến nút hỏi ý kiến khán giả , ta thiết kế sơ qua : Lập trình Android Page 34 PROJECT1 Khi bắt kiên nút ta phải đảm bảo tính đắn , đáp án có phần trăm khán giả lựa chọn cao nhiên không đáp án có phần trăm cao Đầu tiên , thường lệ ta khai báo liên kết component mà ta sử dụng, dùng Bundle lấy đáp án từ Activity trước truyền vào Ta tạm gọi TextView tương ứng 1,2,3,4 để dễ sử dụng ta viết hàm truyền vào số 1,2,3 trả TextView tương ứng Sau khởi tạo đối tượng Random đưa đáp án không vào List : Ta đựa vào số list để gọi đến TextView tương ứng Tiếp xây Random phần trăm người chọn cho đáp án : Lập trình Android Page 35 PROJECT1 Theo cách random thỏa mãn yêu cầu đặt đáp án có khả nhiều người chọn đáp án khác số người chọn nhiều Cuối nút “Đổi câu hỏi” , người chơi ấn vào nút , hệ thống lấy csdl câu hỏi khác có độ khó không lặp lại câu hỏi vừa xong đưa hình Như ta lấy câu hỏi ban đầu , ta sử dụng Cursor để lấy toàn câu hỏi có độ khó tương đương đặc biệt phải khác với câu hỏi Sau ta việc đưa thay cho câu hỏi Như xong trợ giúp , ta quay lại vấn đề biến flagh lúc Như biết trợ giúp sử dụng lần lượt chơi nên ta dùng trợ giúp xong, phải đảm bảo câu sau sử dụng lại trợ giúp , ta sử dụng biến boolean flagh1,2,3,4 Ban đầu bắt đầu trò chơi biến = false ta dùng trợ giúp biến chuyển thành true , lần ta sang câu hỏi , ta truyền giá trị biến cho câu hỏi sau , câu hỏi sau , ta check giá trị biến lấy =true setEnabled cho nút tương ứng false hay làm nút không dùng Đầu tiên sửa lại hàm open để truyền giá trị cho câu : Lập trình Android Page 36 PROJECT1 Viết hàm check giá trị , true vô hiệu hóa nút tương ứng : Lấy giá trị check chúng gọi lại Activity : Và ta tạo trợ giúp cho game Giừo việc thêm thật nhiều câu hỏi vào sở liệu để chơi thỏa thích ^^ Lập trình Android Page 37 [...]... quả : Game Trắc nghiệm đơn giản Lập trình Android Page 18 PROJECT1 Game có giao diện đồ họa đơn giản , mô phỏng theo game ai là triệu phú, tính năng đơn giản hơn Để làm những game này cần tìm hiểu một số kiến thức như AlertDialog, SQLite DB Đầu tiên là về SQLite, đây là CSDL được tích hợp sẵn khi cài đặt java android, các câu lệnh truy vấn csdl không khác gì so với SQL Server thông thường , co điều... cho các menu : Lập trình Android Page 17 PROJECT1 infomationLayout settingLayout Do nãy ta khai báo layout infomation ở file manifest là android: theme=" @android: style/Theme.Dialog" nên nó sẽ có hình hiển thị kiểu như trên giờ quay lại với infoActivity và settingActivity , ta setContentView(int id) truyền vào id của layout là OK Kết quả : Game Trắc nghiệm đơn giản Lập trình Android Page 18 PROJECT1... Activity câu hỏi : Vậy là xong ActivityMain , kế đến xử lí sang Activity của câu hỏi Việc đầu tiên phải làm sau khi đã khai báo đầy đủ các biến là lấy giá trị vừa được truyền ở ActivityMain sang , số đó sẽ Lập trình Android Page 24 PROJECT1 được sử dụng làm số thứ tự của câu hỏi hay độ khó của câu hỏi , ta sẽ dựa vào đó lấy toàn bộ những câu hỏi có độ khó như vậy trong csdl ra : Vậy là ta đã có tất cả... trinh và gỡ lỗi Đây là kĩ thuật tối quan trọng đối với lập trình Android 2 Một số chương trình đơn giản Chương trình đăng nhập Chương trình nhập vào một tài khoản , nếu đúng thì hiện lên “Đăng nhập thành công” , sai thì hiện lên “Sai tài khoản hoặc mật khẩu” Đầu tiên tạo môt project tên login , Thiết kế giao diện đơn giản như sau: ở phần code , cài đặt id như sau : id ở có thể coi là tên truy cập của... Các activity này extends lớp Activity trong thư viện Android, sau đó override phương thức onCreate(Bundle), đây là phương thức giúp ta hiển thị 1 layout Và tất nhiên , cứ khi tạo 1 activity xong thì việc đầu tiên phải làm là vào file AndroidManifest.xml để khai báo Để ý phần tên của actyvity mà ta đặt Lập trình Android Page 16 PROJECT1 Quay lại với MainActivity , override phương thức public boolean onOptionsItemSelected(MenuItem... là User với 2 thuộc tính là id và pass : Lập trình Android Page 11 PROJECT1 quay sang MainActivity , ta khai báo các biến tương ứng với các component cần xử lí ở layout , thường thì sẽ để tên biến giống với id của các component để dễ thao tác Sau đó tham chiếu đến layout Tại sao lại phải ép kiểu ở đây ? Nhìn vào câu lệnh findViewById nghĩa là tìm 1 view theo id vậy nên nó sẽ trả về 1 view , view là. .. ta sẽ sử dụng weightSum, một điều chú ý là khi ta dùng weightSum , tỉ lệ sẽ bị ngược lại Như với chương trình trên ở layout ta để tổng sum = 100 , khi ta đặt cho editText thuộc tính weight = 30 thì nó sẽ chiếm 70% của khung và ngược lại ( cái này em cũng chả biết tại sao) Và đấy là một số các thiết kế cơ bản của một layout và điển hình là layout trên đây là phần code xử lí Kết quả : Lập trình Android. .. Tạo ví dụ một vài menu của một Android app Đầu tiên tạo môt project tên DemoMenu, không cần thiết kế gì đặc biệt Giả sử ta muốn tạo 2 menu là Setting và Infomation Vào res/menu/main.xml file main.xml nà là file quản lí các menuItem của project , mọi menu muốn hoạt động thì phải được khai báo trong file này từ đây ta tạo 2 ItemMenu là setting và Infomation: Lập trình Android Page 15 PROJECT1 Giờ thì... Page 30 PROJECT1 Và đây là kết quả: ban đầu không nhập tên sau khi nhập và kết thúc Như vậy là ta đã hoàn thiện một game trắc nghiệm đơn giản :) Nhìn lại thì một game kiểu này mà không có đặc trưng quen thuộc là các sự trợ giúp sẽ rất chán Vậy ta sẽ xây dựng thêm vài sự giúp cho game này Đầy tiên quay lại với layout hiển thị câu hỏi , ta sẽ thết kế thêm cho nó 4 nút tương ứng vói 4 sự trợ giúp :... một khung trên layout còn wrap_content với fill mà match thì rõ ràng hơn : wrap_content fill_parent ở đây có một thuộc tính đặc biệt của LinearLayout là weightSum Vậy weightSum là gì ? Chữ Sum đã nói lên tất cả , Sum là tổng vậy weightSum là tổng trọng lượng Ở LinearLayout khi ta biểu diễn các component theo chiều ngang hoặc dọc , nếu muốn set cho các component đó theo các tỉ lệ (như trên là 30-70)

Ngày đăng: 11/09/2016, 22:41

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan