Thứ Sáu, 14 tháng 12, 2018

Android - Tiện ích

Một widget là một tiện ích nhỏ hoặc điều khiển ứng dụng lập trình Android của bạn được đặt trên màn hình chính. Các widget có thể rất tiện dụng vì chúng cho phép bạn đặt các ứng dụng yêu thích của mình lên màn hình chính để nhanh chóng truy cập chúng.

Bạn có thể đã thấy một số tiện ích phổ biến, chẳng hạn như tiện ích âm nhạc, tiện ích thời tiết, tiện ích đồng hồ, v.v.

Các widget có thể có nhiều loại như widget thông tin, widget bộ sưu tập, widget điều khiển và widget lai. Android cung cấp cho chúng tôi một khung hoàn chỉnh để phát triển các widget của riêng chúng tôi.

Học lập trình Android
Học lập trình Android

Tiện ích - Tệp XML

Để tạo một widget ứng dụng, điều đầu tiên bạn cần là đối tượng AppWidgetProviderInfo, mà bạn sẽ định nghĩa trong một tệp XML widget riêng biệt. Để làm điều đó, nhấp chuột phải vào dự án của bạn và tạo một thư mục mới gọi là xml .

Bây giờ, nhấp chuột phải vào thư mục vừa tạo và tạo một tệp XML mới. Loại tài nguyên của tệp XML phải được đặt thành AppWidgetProvider . Trong tệp xml, xác định một số thuộc tính như sau
<appwidget-provider 
   xmlns:android="http://schemas.android.com/apk/res/android" 
   android:minWidth="146dp" 
   android:updatePeriodMillis="0" 
   android:minHeight="146dp" 
   android:initialLayout="@layout/activity_main">
</appwidget-provider>

Widget - Bố cục tập tin

Khóa học lập trình Android bây giờ bạn phải xác định bố cục của widget trong tệp XML mặc định của mình. Bạn có thể kéo các thành phần để tạo xml tự động.

Widget - tập tin Java

Sau khi xác định bố cục, bây giờ hãy tạo tệp JAVA mới hoặc sử dụng tệp hiện có và mở rộng tệp đó bằng lớp AppWidgetProvider và ghi đè phương thức cập nhật của nó như sau.

Trong phương thức cập nhật, bạn phải định nghĩa đối tượng của hai lớp là PendingIntent và RemoteViews. Cú pháp của nó là
PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);
Cuối cùng, bạn phải gọi một phương thức cập nhật updateAppWidget () của lớp AppWidgetManager. Cú pháp của nó là
 
appWidgetManager.updateAppWidget(currentWidgetId,views);  

Một phần từ phương thức updateAppWidget, có các phương thức khác được định nghĩa trong lớp này để thao tác các widget. Họ là như sau

Không.Phương pháp & Mô tả
1onDelatted (Ngữ cảnh, int [] appWidgetIds)
Điều này được gọi khi một phiên bản của AppWidgetProvider bị xóa.
2bật tắt (bối cảnh bối cảnh)

Điều này được gọi khi phiên bản cuối cùng của AppWidgetProvider bị xóa
3onEnables (Bối cảnh bối cảnh)

Điều này được gọi khi một phiên bản của AppWidgetProvider được tạo.
4onReceive (Bối cảnh, ý định)

Nó được sử dụng để gửi các cuộc gọi đến các phương thức khác nhau của lớp

Widget - Tệp kê khai

Bạn cũng phải khai báo lớp AppWidgetProvider trong tệp kê khai của mình như sau:
<receiver android:name="ExampleAppWidgetProvider" >
   
   <intent-filter>
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
   </intent-filter>
   
   <meta-data android:name="android.appwidget.provider"
      android:resource="@xml/example_appwidget_info" />
</receiver>
Thí dụ

Dưới đây là một ví dụ minh họa việc sử dụng Widget ứng dụng. Nó tạo ra một ứng dụng widget cơ bản sẽ mở trang web hiện tại này trong trình duyệt.

Để thử nghiệm với ví dụ này, bạn cần chạy nó trên một thiết bị thực tế có internet đang chạy.

Các bướcSự miêu tả
1Bạn sẽ sử dụng studio Android để tạo một ứng dụng Android theo gói com.example.sairamkrishna.myapplication.
2Sửa đổi tệp src / MainActivity.java để thêm mã widget.
3Sửa đổi res / layout / Activity_main để thêm các thành phần XML tương ứng
4Tạo một thư mục mới và tệp xml trong res / xml / mywidget.xml để thêm các thành phần XML tương ứng
5Sửa đổi AndroidManifest.xml để thêm các quyền cần thiết
6Chạ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ả.
Sau đây là nội dung của MainActivity.java đã sửa đổi .
package com.example.sairamkrishna.myapplication;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.RemoteViews;
import android.widget.Toast;

public class MainActivity extends AppWidgetProvider{
   public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
      for(int i=0; i<appWidgetIds.length; i++){
         int currentWidgetId = appWidgetIds[i];
         String url = "http://www.tutorialspoint.com";
         
         Intent intent = new Intent(Intent.ACTION_VIEW);
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         intent.setData(Uri.parse(url));
         
         PendingIntent pending = PendingIntent.getActivity(context, 0,intent, 0);
         RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);
         
         views.setOnClickPendingIntent(R.id.button, pending);
         appWidgetManager.updateAppWidget(currentWidgetId,views);
         Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show();
      }
   }
}
Sau đây là nội dung được sửa đổi của xml res / layout / Activity_main.xml.
<?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:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".MainActivity"
   android:transitionGroup="true">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textColor="#ff3412ff"
      android:textSize="35dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Widget"
      android:id="@+id/button"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="61dp"
      android:layout_below="@+id/textView" />

</RelativeLayout>
Sau đây là nội dung của res / xml / mywidget.xml .
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider 
   xmlns:android="http://schemas.android.com/apk/res/android" 
   android:minWidth="146dp" 
   android:updatePeriodMillis="0" 
   android:minHeight="146dp" 
   android:initialLayout="@layout/activity_main">
</appwidget-provider>
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="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      <receiver android:name=".MainActivity">
      
      <intent-filter>
         <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
      </intent-filter>
      
      <meta-data android:name="android.appwidget.provider"
         android:resource="@xml/mywidget"></meta-data>
      
      </receiver>
   
   </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ụ. 

Trước khi bắt đầu ứng dụng của bạn, studio Android sẽ hiển thị cửa sổ sau để chọn tùy chọn nơi bạn muốn chạy ứng dụng Android của mình.

Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình mặc định của bạn

Chuyển đến phần tiện ích của bạn và thêm tiện ích đã tạo vào màn hình chính hoặc màn hình chính. Nó sẽ trông giống như thế này

Bây giờ chỉ cần nhấn vào nút widget xuất hiện, để khởi chạy trình duyệt. Nhưng trước đó hãy chắc chắn rằng bạn đã kết nối với internet. Sau khi nhấn nút, màn hình sau sẽ xuất hiện

Chú thích. Chỉ cần thay đổi url trong tệp java, tiện ích của bạn sẽ mở trang web mong muốn của bạn trong trình duyệt.

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