Học lập trình Android cung cấp các loại sự kiện màn hình cảm ứng đặc biệt như chụm, chạm hai lần, cuộn, nhấn lâu và nao núng. Đây đều được gọi là cử chỉ.
Android cung cấp lớp GestureDetector để nhận các sự kiện chuyển động và cho chúng tôi biết rằng những sự kiện này có tương ứng với cử chỉ hay không.
Để sử dụng nó, bạn cần tạo một đối tượng của GestureDetector và sau đó mở rộng một lớp khác bằng GestureDetector. SimpleOnGestureListener để hoạt động như một trình lắng nghe và ghi đè một số phương thức. Cú pháp của nó được đưa ra dưới đây
Dưới đây là một ví dụ minh họa việc sử dụng lớp ScaleGestureDetector. Nó tạo ra một ứng dụng cơ bản cho phép bạn phóng to và thu nhỏ thông qua độ chụm.
Để thử nghiệm với ví dụ này, bạn có thể chạy nó trên một thiết bị thực tế hoặc trong trình giả lập có bật màn hình cảm ứng.
Sau đây là nội dung của tệp hoạt động chính được sửa đổi src / MainActivity.java .
Sau đây là nội dung của res / value / string.xml .
Để chạy ứng dụng từ studio Android, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào Biểu tượng chạy từ thanh công cụ. Đầu ra mẫu phải như thế này
Bây giờ chỉ cần đặt hai ngón tay lên màn hình Android và tách chúng ra một phần và bạn sẽ thấy hình ảnh Android đang phóng to. Nó được hiển thị trong hình dưới đây
Bây giờ một lần nữa đặt hai ngón tay lên màn hình Android và thử đóng chúng lại và bạn sẽ thấy rằng hình ảnh Học lập trình Android hiện đang bị thu hẹp. Nó được hiển thị trong hình dưới đây
Android cung cấp lớp GestureDetector để nhận các sự kiện chuyển động và cho chúng tôi biết rằng những sự kiện này có tương ứng với cử chỉ hay không.
![]() |
| Học lập trình Android chuyên nghiệp |
Để sử dụng nó, bạn cần tạo một đối tượng của GestureDetector và sau đó mở rộng một lớp khác bằng GestureDetector. SimpleOnGestureListener để hoạt động như một trình lắng nghe và ghi đè một số phương thức. Cú pháp của nó được đưa ra dưới đây
GestureDetector myG; myG = new GestureDetector(this,new Gesture()); class Gesture extends GestureDetector.SimpleOnGestureListener{ public boolean onSingleTapUp(MotionEvent ev) { } public void onLongPress(MotionEvent ev) { } public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { } public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { } }
Xử lý cử chỉ Pinch
Học lập trình Android cung cấp lớp ScaleGestureDetector để xử lý các cử chỉ như pinch, v.v. Để sử dụng nó, bạn cần khởi tạo một đối tượng của lớp này. Cú pháp của nó là như sau -ScaleGestureDetector SGD; SGD = new ScaleGestureDetector(this,new ScaleListener());Tham số đầu tiên là bối cảnh và tham số thứ hai là trình lắng nghe sự kiện. Chúng ta phải xác định trình lắng nghe sự kiện và ghi đè hàm OnTouchEvent để làm cho nó hoạt động. Cú pháp của nó được đưa ra dưới đây
public boolean onTouchEvent(MotionEvent ev) { SGD.onTouchEvent(ev); return true; } private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener { @Override public boolean onScale(ScaleGestureDetector detector) { float scale = detector.getScaleFactor(); return true; } }Ngoài các cử chỉ chụm, còn có các phương pháp khác có sẵn để thông báo thêm về các sự kiện chạm. Chúng được liệt kê dưới đây
| Không. | Phương pháp & mô tả |
|---|---|
| 1 | getEventTime () Phương pháp này có được thời gian sự kiện của sự kiện hiện tại đang được xử lý .. |
| 2 | getF FocusX () Phương pháp này lấy tọa độ X của tiêu điểm của cử chỉ hiện tại. |
| 3 | getF FocusY () Phương pháp này lấy tọa độ Y của tiêu điểm của cử chỉ hiện tại. |
| 4 | getTimeDelta () Phương pháp này trả về chênh lệch thời gian tính bằng mili giây giữa sự kiện chia tỷ lệ được chấp nhận trước đó và sự kiện chia tỷ lệ hiện tại. |
| 5 | isInProTHER () Phương pháp này trả về true nếu một cử chỉ tỷ lệ đang diễn ra .. |
| 6 | onTouchEvent (sự kiện MotionEvent) Phương pháp này chấp nhận MotionEvents và gửi các sự kiện khi thích hợp. |
Để thử nghiệm với ví dụ này, bạn có thể chạy nó trên một thiết bị thực tế hoặc trong trình giả lập có bật màn hình cảm ứng.
| Các bước | Sự miêu tả |
|---|---|
| 1 | Bạn sẽ sử dụng studio Android để tạo một ứng dụng Android theo gói com.example.sairamkrishna.myapplication. |
| 2 | Sửa đổi tệp src / MainActivity.java để thêm mã cần thiết. |
| 3 | Sửa đổi res / layout / Activity_main để thêm các thành phần XML tương ứng |
| 4 | Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả |
package com.example.sairamkrishna.myapplication; import android.app.Activity; import android.graphics.Matrix; import android.os.Bundle; import android.view.MotionEvent; import android.view.ScaleGestureDetector; import android.widget.ImageView; public class MainActivity extends Activity { private ImageView iv; private Matrix matrix = new Matrix(); private float scale = 1f; private ScaleGestureDetector SGD; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv=(ImageView)findViewById(R.id.imageView); SGD = new ScaleGestureDetector(this,new ScaleListener()); } public boolean onTouchEvent(MotionEvent ev) { SGD.onTouchEvent(ev); return true; } private class ScaleListener extends ScaleGestureDetector. SimpleOnScaleGestureListener { @Override public boolean onScale(ScaleGestureDetector detector) { scale *= detector.getScaleFactor(); scale = Math.max(0.1f, Math.min(scale, 5.0f)); matrix.setScale(scale, scale); iv.setImageMatrix(matrix); return true; } } }Sau đây là nội dung được sửa đổi của xml res / layout / Activity_main.xml.
Ở đây abc chỉ ra logo của hướng dẫn
Sau đây là nội dung của res / value / string.xml .
<resources> <string name="app_name>My Application</string> </resources>Sau đây là nội dung của tệp AndroidManifest.xml .
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.sairamkrishna.myapplicationMainActivity" 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 của bạn. Tôi giả sử bạn đã kết nối thiết bị Android Mobile thực tế của mình với máy tính.
Để chạy ứng dụng từ studio Android, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào Biểu tượng chạy từ thanh công cụ. Đầu ra mẫu phải như thế này
Bây giờ chỉ cần đặt hai ngón tay lên màn hình Android và tách chúng ra một phần và bạn sẽ thấy hình ảnh Android đang phóng to. Nó được hiển thị trong hình dưới đây
Bây giờ một lần nữa đặt hai ngón tay lên màn hình Android và thử đóng chúng lại và bạn sẽ thấy rằng hình ảnh Học lập trình Android hiện đang bị thu hẹp. Nó được hiển thị trong hình dưới đây

Không có nhận xét nào:
Đăng nhận xét