2016年7月21日 星期四

Dual Screen on Android 6.0

環境: Intel Celeron N3050 ( Braswell ) + Android 6.01 + kernel 3.14.55-x86 

實作之前,先在setting 裡打開雙螢幕功能

FisrtScreen.java
import android.hardware.display.DisplayManager;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends ActionBarActivity {

    private String TAG = "MainActivity";
    private SecondScreen_Main mPresentation = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        GetMultiScreenInit();
    }

    private void GetMultiScreenInit()
    {
        DisplayManager dm = (DisplayManager) getSystemService(DISPLAY_SERVICE);
        if (dm != null)
        {
            Display[] displays =
                    dm.getDisplays(
                            DisplayManager.DISPLAY_CATEGORY_PRESENTATION);

            for (Display display : displays)
            {
                mPresentation = new SecondScreen_Main(this, display);
                mPresentation.show();
            }
        }
        else
            Log.i(TAG, "Can't find second screen");
    }
}
SecondScreen_Main.java
import android.app.Presentation;
import android.content.Context;
import android.os.Bundle;
import android.view.Display;

public class SecondScreen_Main extends Presentation {
    public SecondScreen_Main(Context outerContext, Display display)
    {
        super(outerContext, display);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second_screen_main);
    }
}
activity_main.xml
<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">

    <TextView 
        android:text="@string/hello_world" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
second_screen_main.xml
<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:clickable="false">

    <TextView
        android:text="hello_world_222"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView" />
</RelativeLayout>
AndroidManifest.xml
<permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
ref :
Multiple Displays – Part 2
Android實現雙屏顯示

沒有留言:

張貼留言