Widget android là gì

     

Widget trong Android là một trong những tiện ích nhỏ chứa các dữ liệu và tác dụng quan trọng độc nhất vô nhị của ứng dụng rất có thể truy cập ngay lập tức từ màn hình chính của bạn dùng. Bài viết này sẽ cung cấp cho mình kiến thức cơ phiên bản về widget và kiến tạo một widget đơn giản và dễ dàng trong Android.

Bạn đang xem: Widget android là gì


*

Widget trong Android là 1 trong những tiện ích bé dại chứa những dữ liệu và công dụng quan trọng tốt nhất của ứng dụng hoàn toàn có thể truy cập tức thì từ màn hình hiển thị chính của bạn dùng.Người dùng hoàn toàn có thể di đưa vị trícác widgetmàn hình chính của mình và, nếu như được hỗ trợ, biến hóa kích thước củachúng để điều chỉnh lượng tin tức trong một widget theo sở trường của họ.

1. Nguyên tố của một widget

1.1. AppWidgetProviderInfo

Nơi định nghĩa các thuộc tính của widget như: chiều rộng, chiều cao tối thiểu, file layoutgiao diện widget, thời hạn cập nhật, ảnh xem trước,... Định nghĩađối tượng AppWidgetProviderInfo trong khoáng sản XML bằng phương pháp sử dụng 1 phần tử duy nhất với lưu nó trong folder res/xmlcủa dự án.

- minWidth, minHeight:chỉ định lượng không khí tối thiểu mà lại widgetsử dụng theo mặc địnhdựa trên lưới những ô có độ cao và chiều rộng lớn xác định. Nếu các giá trị cho chiều rộng lớn hoặc chiều cao tối thiểukhông khớp với size của những ô, thì kích cỡ của widgetsẽ đượclàm tròn với form size ô gần nhất.

-updatePeriodMillis:xác định gia tốc widget yêu cầu yêu cầu cập nhật từ AppWidgetProvider bởi phương thứconUpdate () tính bởi millisecond (mặc định buổi tối thiểu 30 phút)

-initialLayout:trỏ cho file giao diện widget

-previewImage: ảnh coi trước widgetmà người tiêu dùng sẽ thấy

-resizeMode: quy định phương pháp widget hoàn toàn có thể được biến đổi kích thước (horizontal/vertical/none)

-widgetCategory: nơi widget hoàn toàn có thể hiển thị:màn hình bao gồm (home_screen), screen khóa (keyguard) giỏi cả hai. Chỉ các phiên phiên bản Android thấp hơn 5.0 mới cung ứng các widget màn hình khóa. Đối với android 5.0 trở lên, chỉ bao gồm home_screen là thích hợp lệ.

Xem thêm: Cách Kết Nối Điện Thoại Xiaomi Với Máy Tính Nhanh Chóng Nhất

1.2. Tệp tin layout giao diện

Giao diện widget dựa trên RemoteViews chỉhỗ trợ những ViewGroup:

FrameLayoutLinearLayoutRelativeLayoutGridLayout

Và những view:

AnalogClockButtonChronometerImageButtonImageViewProgressBarTextViewViewFlipperListViewGridViewStackViewAdapterViewFlipper

1.3.AppWidgetProvider

Lớp mở rộng từBroadcastReceiver, xử lý những sự kiệncập nhật, xóa, bật và tắt widget

- onUpdate()

Được gọi để update widgettheo các khoảng thời hạn được xác định bởi thuộc tính updatePeriodMillis trong AppWidgetProviderInfo.Phương thức này cũng rất được gọi khi người tiêu dùng thêm widget, vì đó, nó vẫn thực hiện tùy chỉnh thiết lập thiết yếu đuối ban đầu.Tuy nhiên, nếu bạn đã khai báo một configuration Activity, phương thức này sẽ không được gọi khi người dùng thêm widget, cơ mà được call cho các phiên bản cập nhật tiếp theo. Configuration Activity có trách nhiệm thực hiện cập nhật đầu tiên khi hoàn tất cấu hình.

Là phương thức đặc trưng nhất, sẽ xử lý những tương tác với người dùng nếu có. Lấy ví dụ như widget chứa một button khi nhấn sẽ mở 1 Activity:

public class ExampleAppWidgetProvider extends AppWidgetProvider { public void onUpdate(Context context, AppWidgetManager appWidgetManager, int<> appWidgetIds) { final int N = appWidgetIds.length; // Perform this loop procedure for each ứng dụng Widget that belongs lớn this provider for (int i=0; i-onDeleted(Context, int<>)

Được hotline khi widget bị xóa.

- onEnabled(Context)

Được gọi khi một widget được chế tạo lần đầu tiên.

Xem thêm: Đội Hình Tây Ban Nha Euro 2008 Giờ Ở Đâu? Đội Hình Tây Ban Nha Euro 2008

- onDisabled(Context)

Được điện thoại tư vấn khi phiên bản cuối thuộc của widget bị xóa

- onReceive(Context, Intent)

Được gọi cho mỗi lần phân phát sóng với trước mỗi phương thứcở trên.

2. Ví dụ

Tạo 1 widget đơn giản và dễ dàng chứa 1 button khi nhấn vẫn mở MainActivity

- sinh sản Widget

*

-new_app_widget.xml

-NewAppWidget.java

public class NewAppWidget extends AppWidgetProvider static void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) // tạo nên intent mở MainActivity Intent intent = new Intent(context, MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); // xử lý sự khiếu nại onClick RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.new_app_widget); views.setOnClickPendingIntent(R.id.bt_click_me, pendingIntent); // cập nhật widget appWidgetManager.updateAppWidget(appWidgetId, views);
Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int<> appWidgetIds) // bao gồm thể có rất nhiều instance của một widget đề nghị cần cập nhật tất cả for (int appWidgetId : appWidgetIds) updateAppWidget(context, appWidgetManager, appWidgetId);
Override public void onDisabled(Context context) -new_app_widget_info.xml