Thứ Năm, 10 tháng 1, 2019

Khóa học lập trình Android - Android - Kéo và thả

Khung kéo / thả Khóa học lập trình Android cho phép người dùng của bạn di chuyển dữ liệu từ Chế độ xem này sang Chế độ xem khác trong bố cục hiện tại bằng cử chỉ kéo và thả đồ họa. 

Kể từ API 11, kéo và thả chế độ xem vào các chế độ xem hoặc nhóm xem khác được hỗ trợ. Khung bao gồm ba thành phần quan trọng sau để hỗ trợ chức năng kéo và thả

Khóa học lập trình Android
Khóa học lập trình Android

Kéo lớp sự kiện .


Kéo người nghe .

Các phương thức và lớp trợ giúp .

Quá trình kéo / thả

Về cơ bản có bốn bước hoặc trạng thái trong quy trình kéo và thả

Bắt đầu - Sự kiện này xảy ra khi bạn bắt đầu kéo một mục trong bố cục, ứng dụng của bạn gọi phương thức startDrag () để báo cho hệ thống bắt đầu kéo. Các đối số bên trong phương thức startDrag () cung cấp dữ liệu được kéo, siêu dữ liệu cho dữ liệu này và gọi lại để vẽ bóng kéo.

Trước tiên, hệ thống sẽ phản hồi bằng cách gọi lại ứng dụng của bạn để lấy bóng kéo. Sau đó nó sẽ hiển thị bóng kéo trên thiết bị.

Tiếp theo, hệ thống sẽ gửi một sự kiện kéo với loại hành động ACTION_DRAG_STARTED cho người nghe sự kiện kéo đã đăng ký cho tất cả các đối tượng Xem trong bố cục hiện tại.

Để tiếp tục nhận các sự kiện kéo, bao gồm cả sự kiện thả có thể xảy ra, trình nghe sự kiện kéo phải trả về true , Nếu trình nghe sự kiện kéo trả về false, thì nó sẽ không nhận các sự kiện kéo cho hoạt động hiện tại cho đến khi hệ thống gửi sự kiện kéo với loại hành động HÀNH ĐỘNG_DRAG_ENDED.

Tiếp tục - Người dùng tiếp tục kéo. Hệ thống gửi hành động ACTION_DRAG_ENTERED theo sau là hành động ACTION_DRAG_LOCATION đến trình nghe sự kiện kéo đã đăng ký cho Chế độ xem nơi kéo điểm vào. Người nghe có thể chọn thay đổi diện mạo của đối tượng View để phản ứng với sự kiện hoặc có thể phản ứng bằng cách làm nổi bật Chế độ xem của nó.

Trình lắng nghe sự kiện kéo nhận được một hành động ACTION_DRAG_EXITED sau khi người dùng đã di chuyển bóng kéo bên ngoài hộp giới hạn của Chế độ xem.

Bị rơi - Người dùng giải phóng mục được kéo trong hộp giới hạn của Chế độ xem. Hệ thống gửi cho người nghe đối tượng View một sự kiện kéo với loại hành động ACTION_DROP.

Khóa học lập trình Android Đã kết thúc - Ngay sau khi loại hành động ACTION_DROP, hệ thống sẽ gửi một sự kiện kéo với loại hành động ACTION_DRAG_ENDED để cho biết rằng hoạt động kéo đã kết thúc.

Lớp DragEvent


Các DragEvent đại diện cho một sự kiện được gửi ra bởi hệ thống tại thời điểm khác nhau trong quá trình hoạt động kéo và thả. Lớp này cung cấp một vài Hằng và các phương thức quan trọng mà chúng ta sử dụng trong quá trình Kéo / Thả.

Hằng số

Sau đây là tất cả các số nguyên có sẵn như là một phần của lớp DragEvent.

Sr.Không.Hằng số & Mô tả
1ACTION_DRAG_STARTED

Tín hiệu bắt đầu một hoạt động kéo và thả.
2ACTION_DRAG_ENTERED
Tín hiệu cho Chế độ xem mà điểm kéo đã vào hộp giới hạn của Chế độ xem.
3ACTION_DRAG_LOCATION
Đã gửi tới Chế độ xem sau ACTION_DRAG_ENTERED nếu bóng kéo vẫn nằm trong hộp giới hạn của đối tượng Xem.
4ACTION_DRAG_EXITED
Tín hiệu mà người dùng đã di chuyển bóng kéo bên ngoài hộp giới hạn của Chế độ xem.
5ACTION_DROP

Tín hiệu cho Chế độ xem mà người dùng đã phát hành bóng kéo và điểm kéo nằm trong hộp giới hạn của Chế độ xem.
6ACTION_DRAG_ENDED
Tín hiệu cho Chế độ xem mà thao tác kéo và thả đã kết thúc.

Phương pháp

Sau đây là một vài phương thức quan trọng và được sử dụng thường xuyên nhất có sẵn như là một phần của lớp DragEvent.

Sr.Không.Hằng số & Mô tả
1int getAction ()

Kiểm tra giá trị hành động của sự kiện này ..
2ClipData getClipData ()

Trả về đối tượng ClipData được gửi đến hệ thống như một phần của lệnh gọi tới startDrag ().
3ClipDescrip getClipDescrip ()
Trả về đối tượng ClipDes mô tả có trong ClipData.
4boolean getResult ()
Trả về một dấu hiệu của kết quả của hoạt động kéo và thả.
5float getX ()
Lấy tọa độ X của điểm kéo.
6float getY ()
Lấy tọa độ Y của điểm kéo.
7Chuỗi toString ()

Trả về một chuỗi đại diện của đối tượng DragEvent này.

Lắng nghe sự kiện kéo

Nếu bạn muốn bất kỳ chế độ xem nào của mình trong Bố cục sẽ phản hồi sự kiện Kéo thì chế độ xem của bạn sẽ thực hiện phương thức gọi lại View.OnDragListener hoặc thiết lập phương thức gọi lại trênDragEvent (DragEvent) . 

Khi hệ thống gọi phương thức hoặc trình nghe, nó sẽ truyền cho chúng một đối tượng DragEvent được giải thích ở trên. Bạn có thể có cả phương thức nghe và phương thức gọi lại cho đối tượng View. Nếu điều này xảy ra, trước tiên hệ thống sẽ gọi người nghe và sau đó xác định cuộc gọi lại miễn là người nghe trả về đúng.

Sự kết hợp giữa phương thức onDragEvent (DragEvent) và View.OnDragListener tương tự như sự kết hợp của onTouchEvent () và View.OnTouchListener được sử dụng với các sự kiện chạm trong các phiên bản Khóa học lập trình Android cũ.

Bắt đầu một sự kiện kéo


Bạn bắt đầu với việc tạo ClipData và ClipData.Item cho dữ liệu được di chuyển. Là một phần của đối tượng ClipData , cung cấp siêu dữ liệu được lưu trữ trong đối tượng ClipDes mô tả trong ClipData. Đối với thao tác kéo và thả không thể hiện chuyển động dữ liệu, bạn có thể muốn sử dụng null thay vì một đối tượng thực tế.

Tiếp theo, bạn có thể mở rộng View.DragShadowBuilder để tạo bóng kéo để kéo chế độ xem hoặc đơn giản là bạn có thể sử dụng View.DragShadowBuilder (Chế độ xem) để tạo bóng kéo mặc định có cùng kích thước với đối số Xem được truyền cho nó, bằng cảm ứng điểm tập trung trong bóng kéo.

Ví dụ sau đây cho thấy chức năng của Kéo và Thả đơn giản bằng cách sử dụng View.setOnLongClickListener () , View.setOnTouchListener () và View.OnDragEventListener () .

Bậc thangSự miêu tả
1Bạn sẽ sử dụng IDE studio Android để tạo ứng dụng Android và đặt tên làỨng dụng của tôi theo gói com.example.saira_000.myapplication .
2Sửa đổi tệp src / MainActivity.java và thêm mã để xác định trình lắng nghe sự kiện cũng như phương thức gọi lại cho hình ảnh logo được sử dụng trong ví dụ.
3Sao chép hình ảnh abc.png trong các thư mục res / drawable- * . Bạn có thể sử dụng hình ảnh với độ phân giải khác nhau trong trường hợp bạn muốn cung cấp chúng cho các thiết bị khác nhau.
4Sửa đổi bố cục tệp XML res / layout / Activity_main.xml để xác định chế độ xem mặc định của hình ảnh logo.
5Chạy ứng dụng để khởi chạy trình giả lập Android và xác minh kết quả của những 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 được sửa đổi src / MainActivity.java . Tập tin này có thể bao gồm từng phương pháp vòng đời cơ bản.

Khóa học lập trình Android Sau đây sẽ là nội dung của tệp res / layout / Activity_main.xml

Trong đoạn mã sau abc chỉ ra logo của guidespoint.com

Sau đây sẽ là nội dung của res / value / chuỗi.xml để xác định hai hằng số mới
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">My Application</string>
</resources>
Sau đây là nội dung mặc định của AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.saira_000.myapplication" >
      
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".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 Ứng dụng của tôi . Tôi giả sử bạn đã tạo AVD của mình trong khi thực hiện thiết lập môi trường.

Để chạy ứng dụng từ Khóa học lập trình Android Studio, 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ụ.

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

Bây giờ, hãy nhấp vào biểu tượng TutorialsPoint được hiển thị và bạn sẽ thấy hình ảnh logo đó di chuyển một chút sau 1 giây nhấp dài từ vị trí của nó, đó là lúc bạn nên bắt đầu kéo hình ảnh. Bạn có thể kéo nó xung quanh màn hình và thả nó vào một vị trí mới.

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

Đăng nhận xét

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 ...