[Android] Lập trình ứng dụng hỗ trợ Đa cửa sổ

Tổng quan

Đa cửa sổ là tính năng chạy cùng lúc nhiều ứng dụng trên cùng một màn hình của một thiết bị. Đây là tính năng chỉ có trên smartphone Android của một số hãng sản xuất như Samsung, Sony. Với tính năng này Android cho phép hiển thị đồng thời nhiều hơn một ứng dụng vào cùng một thời điểm. Một số ứng dụng hỗ trợ đa cửa sổ phổ biến như: Facebook, Instagram, Message, Chrome, Skype, Gmail, Youtube ... Đây là 1 tính năng rất thú vị, tuy nhiên do ít các thiết bị hỗ trợ nên các ứng dụng hỗ trợ đa cửa sổ không được nhiều và dần dần người ta quên mất đi sự có mặt của nó. Tuy nhiên, chỉ cần vài dòng code là ứng dụng của bạn đã có ngay chức năng hỗ trợ đa cửa sổ. Tại sao ko thử chút nhỉ :man_detective:

Cấu hình Đa cửa sổ

Việc cấu hình đa cửa sổ thực chất rất đơn giản, bạn chỉ cần thêm vài dòng code này vào AndroidManifest.xml là xong

Đầu tiên, cấu hình để ứng dụng của bạn xuất hiện trong danh sách lựa chọn

<activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
            </intent-filter>
        </activity>

Tiếp theo, bạn cần thêm các thông số kích thước của ứng dụng khi hiển thị trong chế đa cửa sổ

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <uses-library
            android:name="com.sec.android.app.multiwindow"
            android:required="false" />
        <meta-data
            android:name="com.sec.android.support.multiwindow"
            android:value="true" />
        <meta-data
            android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W"
            android:resource="@dimen/app_defaultsize_w" />
        <meta-data
            android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H"
            android:resource="@dimen/app_defaultsize_h" />
        <meta-data
            android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W"
            android:resource="@dimen/app_minimumsize_w" />
        <meta-data
            android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H"
            android:resource="@dimen/app_minimumsize_h" />
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

File dimen:

<resources>
    <dimen name="app_defaultsize_w">632.0dip</dimen>

    <dimen name="app_defaultsize_h">598.0dip</dimen>

    <dimen name="app_minimumsize_w">632.0dip</dimen>

    <dimen name="app_minimumsize_h">598.0dip</dimen>

</resources>

Ten tèn. Vậy là ứng dụng của bạn đã tích hợp ngay chức năng đa cửa sổ. Thật đơn giản phải ko nào

Kết luận

Như đã nói, đây là 1 tính năng khá thú vị, song do ít thiết bị hỗ trợ nên nó cũng không được phổ biến rộng. Mặt khác, cũng ko nên thêm tùy tiện vào các ứng dụng ko cần thiết. Bên cạnh đó, hay cân nhắc lại thiết kế bố cục layout nếu bạn thực sự muốn thêm nó vào Hi vọng mọi người thấy thú vị 😄