Thứ Tư, 8 tháng 8, 2018

Android - Xử lý sự kiện

Sự kiện là một cách hữu ích để thu thập dữ liệu về tương tác của người dùng với các thành phần tương tác của Ứng dụng. Giống như nút nhấn hoặc màn hình cảm ứng vv Khung Lập trình Android duy trì hàng đợi sự kiện như cơ sở đầu tiên, đầu tiên (FIFO). Bạn có thể nắm bắt những sự kiện này trong chương trình của mình và thực hiện hành động thích hợp theo yêu cầu.

Có ba khái niệm sau liên quan đến Quản lý sự kiện Android 

Trình nghe sự kiện - Trình xử lý sự kiện là một giao diện trong lớp Chế độ xem có chứa một phương thức gọi lại duy nhất. Các phương thức này sẽ được gọi bởi khung công tác Android khi Chế độ xem mà người nghe đã được đăng ký được kích hoạt bởi tương tác của người dùng với mục trong giao diện người dùng.

Đăng ký tổ chức sự kiện - Đăng ký sự kiện là quá trình mà Trình xử lý sự kiện được đăng ký với Trình xử lý sự kiện để trình xử lý được gọi khi Trình xử lý sự kiện kích hoạt sự kiện.

Xử lý sự kiện - Khi một sự kiện xảy ra và chúng tôi đã đăng ký trình xử lý sự kiện cho sự kiện, trình xử lý sự kiện gọi Trình xử lý sự kiện, là phương thức thực sự xử lý sự kiện.

Trình xử lý sự kiện & Trình xử lý sự kiện

Xử lý sự kiệnTrình xử lý sự kiện & mô tả
trong một cái nhấp chuột()OnClickListener ()

Điều này được gọi khi người dùng nhấp hoặc chạm hoặc tập trung vào bất kỳ tiện ích nào như nút, văn bản, hình ảnh, v.v. Bạn sẽ sử dụng trình xử lý sự kiện onClick () để xử lý sự kiện đó.
onLongClick ()OnLongClickListener ()

Điều này được gọi khi người dùng nhấp hoặc chạm hoặc tập trung vào bất kỳ tiện ích nào như nút, văn bản, hình ảnh, v.v. trong một hoặc nhiều giây. Bạn sẽ sử dụng trình xử lý sự kiện onLongClick () để xử lý sự kiện đó.
onFocusChange ()OnFocusChangeListener ()

Điều này được gọi là khi các widget mất tập trung tức là của nó. người dùng rời khỏi mục xem. Bạn sẽ sử dụng bộ xử lý sự kiện onFocusChange () để xử lý sự kiện đó.
onKey ()OnFocusChangeListener ()

Điều này được gọi khi người dùng tập trung vào mục và nhấn hoặc nhả khóa phần cứng trên thiết bị. Bạn sẽ sử dụng onKey () để xử lý sự kiện như vậy.
onTouch ()OnTouchListener ()

Điều này được gọi khi người dùng nhấn phím, nhả phím hoặc bất kỳ cử chỉ cử động nào trên màn hình. Bạn sẽ sử dụng trình xử lý sự kiện onTouch () để xử lý sự kiện đó.
onMenuItemClick ()OnMenuItemClickListener ()

Điều này được gọi khi người dùng chọn một mục menu. Bạn sẽ sử dụng trình xử lý sự kiện onMenuItemClick () để xử lý sự kiện đó.
onCreateContextMenu ()onCreateContextMenuItemListener ()

Điều này được gọi khi menu ngữ cảnh đang được xây dựng (là kết quả của một nhấp chuột dài kéo dài)
Có rất nhiều trình nghe sự kiện có sẵn như là một phần của lớp View như OnHoverListener, OnDragListener vv có thể cần thiết cho ứng dụng của bạn. Vì vậy, tôi khuyên bạn nên tham khảo tài liệu chính thức về phát triển ứng dụng Android trong trường hợp bạn sẽ phát triển một ứng dụng tinh vi.

Đăng ký người nghe sự kiện

Đăng ký sự kiện là quá trình mà Trình xử lý sự kiện được đăng ký với Trình xử lý sự kiện để trình xử lý được gọi khi Trình xử lý sự kiện kích hoạt sự kiện. Mặc dù có một số cách khéo léo để đăng ký trình xử lý sự kiện của bạn cho bất kỳ sự kiện nào, nhưng tôi sẽ liệt kê chỉ 3 cách hàng đầu, trong đó bạn có thể sử dụng bất kỳ sự kiện nào dựa trên tình huống.

Sử dụng một lớp bên trong vô danh

Lớp Activity thực hiện giao diện Listener.

Sử dụng tệp Layout activity_main.xml để chỉ định trình xử lý sự kiện trực tiếp.

Phần dưới đây sẽ cung cấp cho bạn các ví dụ chi tiết về tất cả ba kịch bản -

Chế độ cảm ứng

Người dùng có thể tương tác với thiết bị của họ bằng cách sử dụng các phím hoặc nút phần cứng hoặc chạm vào màn hình. Chạm vào màn hình sẽ đưa thiết bị vào chế độ cảm ứng. Sau đó, người dùng có thể tương tác với nó bằng cách chạm vào các nút ảo ảo, hình ảnh, v.v. Bạn có thể kiểm tra xem thiết bị có ở chế độ cảm ứng hay không bằng cách gọi phương thức isInTouchMode () của lớp Xem.

Tiêu điểm

Chế độ xem hoặc tiện ích thường được đánh dấu hoặc hiển thị con trỏ nhấp nháy khi được lấy nét. Điều này cho biết rằng nó đã sẵn sàng chấp nhận đầu vào từ người dùng.

isFocusable () - nó trả về true hoặc false

isFocusableInTouchMode () - kiểm tra xem xem có thể lấy nét ở chế độ cảm ứng không. (Chế độ xem có thể được lấy nét khi sử dụng khóa phần cứng nhưng không thể khi thiết bị ở chế độ cảm ứng)
android:foucsUp="@=id/button_l"
onTouchEvent ()
public boolean onTouchEvent(motionEvent event){
   switch(event.getAction()){
      case TOUCH_DOWN:
      Toast.makeText(this,"you have clicked down Touch button",Toast.LENTH_LONG).show();
      break();
   
      case TOUCH_UP:
      Toast.makeText(this,"you have clicked up touch button",Toast.LENTH_LONG).show();
      break;
   
      case TOUCH_MOVE:
      Toast.makeText(this,"you have clicked move touch button"Toast.LENTH_LONG).show();
      break;
   }
   return super.onTouchEvent(event) ;
}

Ví dụ xử lý sự kiện

Đăng ký người nghe sự kiện bằng cách sử dụng một lớp bên trong vô danh

Ở đây bạn sẽ tạo ra một sự thực hiện ẩn danh của người nghe và sẽ hữu ích nếu mỗi lớp được áp dụng cho một điều khiển duy nhất và bạn có lợi thế để truyền đối số cho trình xử lý sự kiện. Trong phương pháp xử lý sự kiện tiếp cận này có thể truy cập dữ liệu cá nhân của Hoạt động. Không cần tham khảo để gọi tới Hoạt động.

Nhưng nếu bạn áp dụng trình xử lý cho nhiều điều khiển, bạn sẽ phải cắt và dán mã cho trình xử lý và nếu mã cho trình xử lý dài, nó sẽ làm cho mã khó duy trì hơn.

Sau đây là các bước đơn giản để hiển thị cách chúng ta sẽ sử dụng lớp Listener riêng biệt để đăng ký và nắm bắt sự kiện nhấp chuột. Tương tự như cách bạn có thể triển khai trình lắng nghe của mình cho bất kỳ loại sự kiện được yêu cầu nào khác.

Bậc thangSự miêu tả
1Bạn sẽ sử dụng Android studio IDE để tạo một ứng dụng Android và đặt tên nó là myapplication theo một gói com.example.myapplication như được giải thích trong chương Hello World Example .
2Sửa đổi tệp src / MainActivity.java để thêm trình xử lý sự kiện nhấp chuột và trình xử lý cho hai nút được xác định.
3Sửa đổi nội dung detault của tệp res / layout / activity_main.xml để bao gồm các điều khiển giao diện người dùng Android.
4Không cần phải khai báo các hằng số chuỗi mặc định. Studio Android có các hằng số mặc định quan tâm.
5Chạy ứng dụng để khởi chạy trình giả lập Android và xác minh kết quả của các thay đổi được thực hiện trong ứng dụng.
Sau đây là nội dung của tệp hoạt động chính đã sửa đổi src / com.example.myapplication / MainActivity.java . Tệp này có thể bao gồm từng phương thức vòng đời cơ bản.
package com.example.myapplication;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {
   private ProgressDialog progress;
   Button b1,b2;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      progress = new ProgressDialog(this);

      b1=(Button)findViewById(R.id.button);
      b2=(Button)findViewById(R.id.button2);
      b1.setOnClickListener(new View.OnClickListener() {
         
         @Override
         public void onClick(View v) {
            TextView txtView = (TextView) findViewById(R.id.textView);
            txtView.setTextSize(25);
         }
      });

      b2.setOnClickListener(new View.OnClickListener() {
         
         @Override
         public void onClick(View v) {
            TextView txtView = (TextView) findViewById(R.id.textView);
            txtView.setTextSize(55);
         }
      });
   }
}

Sau đây sẽ là nội dung của tệp res / layout / activity_main.xml

Ở đây abc cho biết về biểu tượng hướng dẫn
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   tools:context=".MainActivity">
   
   <TextView
      android:id="@+id/textView1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Event Handling "
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp"/>
      
   <TextView
      android:id="@+id/textView2"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point "
      android:textColor="#ff87ff09"
      android:textSize="30dp"
      android:layout_above="@+id/imageButton"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="40dp" />
      
   <ImageButton
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageButton"
      android:src="@drawable/abc"
      android:layout_centerVertical="true"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Small font"
      android:id="@+id/button"
      android:layout_below="@+id/imageButton"
      android:layout_centerHorizontal="true" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Large Font"
      android:id="@+id/button2"
      android:layout_below="@+id/button"
      android:layout_alignRight="@+id/button"
      android:layout_alignEnd="@+id/button" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello World!"
      android:id="@+id/textView"
      android:layout_below="@+id/button2"
      android:layout_centerHorizontal="true"
      android:textSize="25dp" />
      
</RelativeLayout>
Sau đây sẽ là nội dung của res / values ​​/ strings.xml để xác định hai hằng số mới
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">myapplication</string>
</resources>
Sau đây là nội dung mặc định của Android Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.myapplication" >
      
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.myapplication.MainActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Hãy thử chạy ứng dụng myapplication của bạn . Tôi cho rằng bạn đã tạo AVD của mình trong khi thiết lập môi trường. Để chạy ứng dụng từ Android Studio, mở một trong các tệp hoạt động của dự án của bạn và nhấp vào Chạy biểu tượng từ thanh công cụ.

Android Studio cài đặt ứng dụng trên AVD của bạn và khởi động ứng dụng và nếu mọi thứ đều ổn với thiết lập và ứng dụng của bạn, ứng dụng sẽ hiển thị cửa sổ Trình mô phỏng sau -

ảnh minh họa

Bây giờ bạn cố gắng bấm vào hai nút, từng cái một và bạn sẽ thấy phông chữ của văn bản Hello World sẽ thay đổi, điều này xảy ra vì phương thức xử lý sự kiện bấm đã đăng ký đang được gọi với mỗi sự kiện nhấp chuột.

Tập thể dục

Tôi sẽ khuyên bạn nên thử viết trình xử lý sự kiện khác nhau cho các loại sự kiện khác nhau và hiểu sự khác biệt chính xác trong các loại sự kiện khác nhau và cách xử lý của chúng. Các sự kiện liên quan đến menu, spinner, pickers widgets có chút khác biệt nhưng chúng cũng dựa trên cùng một khái niệm như đã giải thích ở trên.

Thứ Sáu, 3 tháng 8, 2018

Android - Điều khiển giao diện người dùng

Tổng Quan : 

Học lập trình android Kiểm soát đầu vào là các thành phần tương tác trong giao diện người dùng của ứng dụng của bạn. Android cung cấp nhiều loại điều khiển bạn có thể sử dụng trong giao diện người dùng của mình, chẳng hạn như nút, trường văn bản, thanh tìm kiếm, hộp kiểm, nút thu phóng, nút bật tắt và nhiều thứ khác.
ảnh minh họa

THÀNH PHẦN GIAO DIỆN NGƯỜI DÙNG

Một Xem là một đối tượng mà rút ra một cái gì đó trên màn hình mà người dùng có thể tương tác với và ViewGroup là một đối tượng chứa View (và ViewGroup) các đối tượng khác để xác định bố cục của giao diện người dùng.

Bạn xác định bố cục của mình trong tệp XML cung cấp cấu trúc có thể đọc được cho bố cục, tương tự như HTML. Ví dụ: bố cục dọc đơn giản với chế độ xem văn bản và nút trông như thế này -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="I am a TextView" />
   
   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="I am a Button" />
</LinearLayout>

Điều khiển giao diện người dùng Android

Có một số điều khiển giao diện người dùng do Android cung cấp cho phép bạn tạo giao diện người dùng đồ họa cho ứng dụng của mình.

Sr.No.Kiểm soát & mô tả giao diện người dùng
1TextView

Điều khiển này được sử dụng để hiển thị văn bản cho người dùng.
2Chỉnh sửa văn bản

EditText là một lớp con được xác định trước của TextView bao gồm các khả năng chỉnh sửa phong phú.
3AutoCompleteTextView

AutoCompleteTextView là chế độ xem tương tự như EditText, ngoại trừ việc nó hiển thị danh sách các đề xuất hoàn thành tự động trong khi người dùng đang nhập.
4Nút

Nút ấn có thể được nhấn hoặc được người dùng nhấp để thực hiện một thao tác.
5ImageButton

Một ImageButton là một AbsoluteLayout cho phép bạn xác định vị trí chính xác của các con của nó. Thao tác này hiển thị nút có hình ảnh (thay vì văn bản) có thể được người dùng nhấn hoặc nhấp.
6Hộp kiểm

Công tắc bật / tắt có thể được người dùng chuyển đổi. Bạn nên sử dụng hộp kiểm khi trình bày cho người dùng một nhóm các tùy chọn có thể chọn mà không loại trừ lẫn nhau.
7Nút bật tắt

Nút bật / tắt có đèn báo.
số 8Nút radio

RadioButton có hai trạng thái: được chọn hoặc không được chọn.
9RadioGroup

Một RadioGroup được sử dụng để nhóm lại với nhau một hoặc nhiều RadioButton.
10Thanh tiến trình

Chế độ xem ProgressBar cung cấp phản hồi trực quan về một số tác vụ đang diễn ra, chẳng hạn như khi bạn đang thực hiện tác vụ trong nền.
11Spinner

Một danh sách thả xuống cho phép người dùng chọn một giá trị từ một tập hợp.
12Bộ chọn thời gian

Khung nhìn TimePicker cho phép người dùng chọn thời gian trong ngày, ở chế độ 24 giờ hoặc chế độ AM / PM.
13Bảng chọn ngày

Chế độ xem DatePicker cho phép người dùng chọn ngày trong ngày.

Tạo điều khiển giao diện người dùng

Kiểm soát đầu vào là các thành phần tương tác trong giao diện người dùng của ứng dụng của bạn. Android cung cấp nhiều loại điều khiển bạn có thể sử dụng trong giao diện người dùng của mình, chẳng hạn như nút, trường văn bản, thanh tìm kiếm, hộp kiểm, nút thu phóng, nút bật tắt và nhiều thứ khác.

Như đã giải thích trong chương trước, một đối tượng view có thể có một ID duy nhất được gán cho nó, nó sẽ xác định View duy nhất trong cây. Cú pháp cho một ID, bên trong một thẻ XML là -
android:id="@+id/text_id"
Để tạo một UI Control / View / Widget, bạn sẽ phải định nghĩa một view / widget trong file layout và gán cho nó một ID duy nhất như sau:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView android:id="@+id/text_id"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="I am a TextView" />
</LinearLayout>
Sau đó, cuối cùng tạo một thể hiện của đối tượng Control và capture nó từ layout, sử dụng như sau:
TextView myText = (TextView) findViewById(R.id.text_id);

Thứ Năm, 2 tháng 8, 2018

Android - Bố cục giao diện người dùng

Tổng Quan : 

Học lập trình Android : Khối xây dựng cơ bản cho giao diện người dùng là một đối tượng View được tạo từ lớp View và chiếm một khu vực hình chữ nhật trên màn hình và chịu trách nhiệm cho việc vẽ và xử lý sự kiện. Xem là lớp cơ sở cho các tiện ích, được sử dụng để tạo các thành phần giao diện người dùng tương tác như nút, trường văn bản, v.v.

Các ViewGroup là một lớp con của Xem và cung cấp thùng chứa vô hình mà giữ Lần khác hoặc ViewGroups khác và xác định tính cách bố trí của họ.

Ở cấp độ thứ ba, chúng tôi có các bố cục khác nhau là lớp con của lớp ViewGroup và bố cục điển hình xác định cấu trúc hình ảnh cho giao diện người dùng Android và có thể được tạo trong thời gian chạy bằng cách sử dụng các đối tượng View / ViewGroup hoặc bạn có thể khai báo bố cục của mình bằng cách sử dụng tệp XML main_layout đơn giản .xml nằm trong thư mục res / layout của dự án của bạn

học android
ảnh minh họa

THÔNG SỐ BỐ CỤC

Hướng dẫn này là nhiều hơn về việc tạo GUI của bạn dựa trên các bố cục được xác định trong tệp XML. Bố cục có thể chứa bất kỳ loại tiện ích con nào như nút, nhãn, hộp văn bản, v.v. Sau đây là một ví dụ đơn giản về tệp XML có LinearLayout -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >
   
   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="This is a TextView" />
      
   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="This is a Button" />
      
   <!-- More GUI components go here  -->
   
</LinearLayout>
Khi bố cục của bạn đã được tạo, bạn có thể tải tài nguyên bố cục từ mã ứng dụng của mình, trong hoạt động gọi lại Activity.onCreate () như được hiển thị bên dưới
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
}

Các loại bố cục Android

Có nhiều bố cục được cung cấp bởi Android mà bạn sẽ sử dụng trong hầu hết các ứng dụng Android để cung cấp chế độ xem, giao diện khác nhau.

Sr.NoBố cục & mô tả
1Bố cục tuyến tính

LinearLayout là một nhóm xem sắp xếp tất cả các trẻ em theo một hướng duy nhất, theo chiều dọc hoặc chiều ngang.
2Giao diện tương đối

RelativeLayout là một nhóm xem hiển thị các khung nhìn con ở các vị trí tương đối.
3Bố cục bảng

TableLayout là một khung nhìn nhóm các khung nhìn thành các hàng và các cột.
4Bố cục tuyệt đối

AbsoluteLayout cho phép bạn chỉ định vị trí chính xác của con của nó.
5Bố cục khung

FrameLayout là một trình giữ chỗ trên màn hình mà bạn có thể sử dụng để hiển thị một khung nhìn duy nhất.
6Chế độ xem danh sách
ListView là một nhóm xem hiển thị danh sách các mục có thể cuộn.
7Chế độ hiển thị theo ô

GridView là một ViewGroup hiển thị các mục trong một mạng lưới có thể cuộn hai chiều.

Thuộc tính bố cục

Mỗi bố cục có một tập hợp các thuộc tính xác định các thuộc tính trực quan của bố cục đó. Có rất ít thuộc tính phổ biến trong tất cả các bố cục và chúng là các thuộc tính khác dành riêng cho bố cục đó. Sau đây là các thuộc tính phổ biến và sẽ được áp dụng cho tất cả các bố cục:

Sr.NoThuộc tính & Mô tả
1android: id

Đây là ID xác định duy nhất chế độ xem.
2android: layout_width

Đây là chiều rộng của bố cục.
3android: layout_height

Đây là chiều cao của bố cục
4android: layout_marginTop

Đây là khoảng trống thừa ở phía trên cùng của bố cục.
5android: layout_marginBottom

Đây là khoảng trống thừa ở phía dưới cùng của bố cục.
6android: layout_marginLeft

Đây là khoảng trống thừa ở phía bên trái của bố cục.
7android: layout_marginRight

Đây là khoảng trống thừa ở phía bên phải của bố cục.
số 8android: layout_gravity

Điều này chỉ định cách các Chế độ xem con được định vị.
9android: layout_weight

Điều này xác định bao nhiêu không gian bổ sung trong bố cục sẽ được phân bổ cho Chế độ xem.
10android: layout_x

Điều này xác định tọa độ x của bố cục.
11android: layout_y

Điều này xác định tọa độ y của bố cục.
12android: layout_width

Đây là chiều rộng của bố cục.
13android: layout_width

Đây là chiều rộng của bố cục.
14android: paddingLeft

Đây là phần đệm bên trái được điền cho bố cục.
15android: paddingRight

Đây là phần đệm phù hợp cho bố cục.
16android: paddingTop

Đây là phần đệm trên cùng cho bố cục.
17android: paddingBottom

Đây là phần đệm phía dưới được điền cho bố cục.
Ở đây chiều rộng và chiều cao là kích thước của bố trí / xem có thể được xác định theo dp (pixel độc lập mật độ), sp (pixel độc lập quy mô), pt (điểm là 1/72 inch), px ( Điểm ảnh), mm (Milimet) và cuối cùng là (inch).

Bạn có thể chỉ định chiều rộng và chiều cao với các phép đo chính xác nhưng thường xuyên hơn, bạn sẽ sử dụng một trong các hằng số này để đặt chiều rộng hoặc chiều cao -

android: layout_width = wrap_content cho chế độ xem của bạn biết kích thước của chính nó theo kích thước được yêu cầu bởi nội dung của nó.

android: layout_width = fill_parent cho biết chế độ xem của bạn trở nên lớn bằng chế độ xem gốc.

Thuộc tính Gravity đóng vai trò quan trọng trong việc định vị đối tượng khung nhìn và nó có thể mất một hoặc nhiều (cách nhau bằng '|') của các giá trị hằng số sau.

Không thay đổiGiá trịSự miêu tả
hàng đầu0x30Đẩy đối tượng lên đầu thùng chứa của nó, không thay đổi kích thước của nó.
đáy0x50Đẩy đối tượng vào cuối vùng chứa của nó, không thay đổi kích thước của nó.
trái0x03Đẩy đối tượng sang bên trái của vùng chứa, không thay đổi kích thước của đối tượng.
đúng0x05Đẩy đối tượng sang bên phải của vùng chứa, không thay đổi kích thước của đối tượng.
center_vertical0x10Đặt đối tượng vào trung tâm dọc của vùng chứa, không thay đổi kích thước của đối tượng.
fill_vertical0x70Phát triển kích thước dọc của đối tượng nếu cần thiết để nó hoàn toàn lấp đầy vùng chứa của nó.
center_horizontal0x01Đặt đối tượng ở trung tâm ngang của vùng chứa, không thay đổi kích thước của nó.
fill_horizontal0x07Phát triển kích thước ngang của đối tượng nếu cần thiết để nó hoàn toàn lấp đầy container của nó.
trung tâm0x11Đặt đối tượng ở giữa hộp chứa của nó ở cả trục thẳng đứng và trục ngang, không thay đổi kích thước của vật thể.
lấp đầy0x77Phát triển kích thước ngang và dọc của đối tượng nếu cần để nó lấp đầy hoàn toàn vùng chứa của nó.
clip_vertical0x80Tùy chọn bổ sung có thể được thiết lập để có các cạnh trên và / hoặc dưới cùng của trẻ được cắt bớt các giới hạn của vùng chứa. Đoạn clip sẽ dựa trên trọng lực thẳng đứng: trọng lực hàng đầu sẽ cắt cạnh dưới, trọng lực dưới sẽ cắt cạnh trên và không được kẹp cả hai cạnh.
clip_horizontal0x08Tùy chọn bổ sung có thể được thiết lập để có các cạnh bên trái và / hoặc bên phải của trẻ được cắt bớt các giới hạn của vùng chứa. Clip sẽ dựa trên trọng lực ngang: trọng lực bên trái sẽ cắt cạnh phải, trọng lực phải sẽ cắt cạnh trái và cả hai sẽ không cắt cả hai cạnh.
khởi đầu0x00800003Đẩy đối tượng vào đầu vùng chứa của nó, không thay đổi kích thước của nó.
kết thúc0x00800005Đẩy đối tượng vào cuối thùng chứa của nó, không thay đổi kích thước của nó.

Xem nhận dạng

Một đối tượng khung nhìn có thể có một ID duy nhất được gán cho nó, nó sẽ xác định khung nhìn duy nhất trong cây. Cú pháp cho một ID, bên trong một thẻ XML là

android:id="@+id/my_button"

Sau đây là mô tả ngắn gọn về các dấu @ và + -

Biểu tượng tại (@) ở đầu chuỗi cho biết trình phân tích cú pháp XML sẽ phân tích cú pháp và mở rộng phần còn lại của chuỗi ID và xác định nó như một tài nguyên ID.

Dấu cộng (+) có nghĩa rằng đây là tên tài nguyên mới phải được tạo và thêm vào tài nguyên của chúng tôi. Để tạo một thể hiện của đối tượng khung nhìn và chụp nó từ bố cục, hãy sử dụng như sau:
Button myButton = (Button) findViewById(R.id.my_button);

Lập trình Android - RenderScript

Trong chương này, chúng ta sẽ tìm hiểu về Android RenderScript. Thông thường các ứng dụng trên Android được thiết kế để tiêu thụ tài nguyên ...