程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> dialog-Dialog的橫堅屏切換問題!

dialog-Dialog的橫堅屏切換問題!

編輯:編程綜合問答
Dialog的橫堅屏切換問題!

問題描述:我這裡要實現一個拍照的功能,點擊拍照,彈出一個Dialog顯示你拍的照片並提示你是否保存,這時我還沒有保存,然後我切換屏幕變成橫屏,這時Dialog只顯示了一半,提示你保存的那一部分沒有了,不知道什麼原因。
下面是我創建Dialog的代碼:

private intiBuilderDialog() {
            if (builder == null || !builder.isShowing()) {
                        builder = new Dialog(SamplingCamActivity.this, R.style.mydialog);
                        builder.setContentView(R.layout.img);
                        LayoutParams lay = builder.getWindow().getAttributes();
                        setParams(lay);
                        builder.show();
        }
}
    private void setParams(LayoutParams lay) {
            DisplayMetrics dm = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);
            Rect rect = new Rect();
            View view = getWindow().getDecorView();
            view.getWindowVisibleDisplayFrame(rect);
            lay.height = dm.heightPixels - rect.top;
            lay.width = dm.widthPixels;
        }

下面是創建Dialog的Style:

<style name="mydialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:windowBackground">@color/transparent</item>
        <item name="android:windowAnimationStyle">@style/DialogAnimation</item>
    </style>`enter code here

下面是Dialog的xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@drawable/camera_preview_back"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/check_picture"
        android:textColor="#ffffff"
        android:textSize="@dimen/TitleTextSize"
        android:textStyle="bold"
        android:paddingLeft="20dp"
        android:paddingTop="5dp" 
        android:paddingBottom="5dp"/>

    <View
        android:layout_width="fill_parent"
        android:layout_height="1.0px"
        android:background="@drawable/camera_preview_line" />

    <ImageView
        android:id="@+id/ImageView01"
        android:layout_width="240dp"
        android:layout_height="320dp"
        android:layout_gravity="center"
        android:layout_margin="10.0dip" />

    <View
        android:layout_width="fill_parent"
        android:layout_height="1.0px"
        android:background="@drawable/camera_preview_line" />

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp" >

        <Button
            android:id="@+id/preview_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="10.0dip"
            android:text="@string/cancel" 
            android:background="@drawable/image_icon"
            android:textColor="@drawable/text_color"/>

        <Button
            android:id="@+id/preview_confirm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="10.0dip"
            android:layout_toLeftOf="@id/preview_cancel"
            android:text="@string/accept"
            android:background="@drawable/image_icon"
            android:textColor="@drawable/text_color" />
    </RelativeLayout>

</LinearLayout>

下面是我在橫堅屏切換時作的處理:也就是重新再創建一遍Dialog:

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub
        super.onConfigurationChanged(newConfig);
        if (builder != null && builder.isShowing()) {
            builder.dismiss();
            intiBuilderDialog();
        }
    }

最佳回答:


如果是自己寫布局生成Dialog的話,橫豎屏是不是應該寫兩套分別加載才好,android源碼中音樂播放器的自定義dialog布局都是橫豎屏區分的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved