1. 程式人生 > >橫屏顯示時,兩邊透明到桌面,中間app顯示

橫屏顯示時,兩邊透明到桌面,中間app顯示

1.首先xml,設定讓佈局居中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:layout_gravity="center_horizontal"
    android:background="#ffffffff"
    tools:context="com.example.haha.MainActivity" >

    <LinearLayout
        android:id="@+id/main_layout"
        android:layout_width="60dp"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:background="#300030"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="48dp"
                android:layout_weight="3"
                android:gravity="center_vertical"
                android:paddingLeft="16dp"
                android:text="內容"
                android:textColor="#665555" />
    </LinearLayout>

</RelativeLayout>

2.計算螢幕寬高比例

        LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main_layout);
        DisplayMetrics metric = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metric);
        int width = metric.widthPixels; // 螢幕寬度(畫素)
        int height = metric.heightPixels; // 螢幕高度(畫素)

3.設定中間佈局寬度
        LayoutParams layoutParams = mainLayout.getLayoutParams();
        layoutParams.width=width/2;
        layoutParams.height=height;
        mainLayout.setLayoutParams(layoutParams);

4.設定actvity透明

第一種方法

       <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

第二種方法

(1)在res/values資料夾下,新建一個style.xml檔案,寫入下面的程式碼

(2)<style name="translucent"> <item name="android:windowBackground">@color/translucent_background</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item> </style>

(3)activity設定android:theme="@style/translucent"