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布局都是横竖屏区分的。

解决方案二:

外面套个scrollview,这样就可以滚动了,同时把button外面的layout放在scrollview外面,保证其一定显示。

时间: 2024-10-26 05:24:26

dialog-Dialog的横坚屏切换问题!的相关文章

android开发-Android 里把Activity伪装成Dialog后此Activity不能横竖屏切换?

问题描述 Android 里把Activity伪装成Dialog后此Activity不能横竖屏切换? Android 里把Activity伪装成Dialog后此Activity就不能横竖屏切换了?也不能回调onConfigurationChanged. 还有什么办法能使伪装的dialog 监听到手机横竖屏的变化么 解决方案 就用Activity,不可以吗~实现什么效果~ 解决方案二: 就用Activity,不可以吗~实现什么效果~ 解决方案三: 伪装成....还是Acticvitiy. 解决方案

UCD思想:横竖屏切换的设计的浅谈

文章描述:横竖都要给力--浅谈移动客户端的横竖屏切换设计评论. 随着技术与用户体验的发展,移动客户端产品中越来越多的需要横竖屏切换的设计.横竖屏旋转切换的设计在理想的情况下保持不变就能满足用户的需求.但也有很多时候,横竖屏切换时用户操作行为和屏幕比例的改变决定了客户端产品在设计时必须做出适当的针对性变化,于是对于交互设计而言,变不变.怎么变就成了一个普遍存在的问题. 应用背景 先从横竖屏切换需要的产生的背景说开. 横竖屏切换策略最早应用于QWERTY侧滑全键盘按键设计的手机上(早期塞班S60与W

横竖都要给力 谈移动客户端横竖屏切换设计

随着技术与用户体验的发展,移动客户端产品中越来越多的需要横竖屏切换的设计.横竖屏旋转切换的设计在理想的情况下保持不变就能满足用户的需求.但也有很多时候,横竖屏切换时用户操作行为和屏幕比例的改变决定了客户端产品在设计时必须做出适当的针对性变化,于是对于交互设计而言,变不变.怎么变就成了一个普遍存在的问题. 应用背景 先从横竖屏切换需要的产生的背景说开. 横竖屏切换策略最早应用于QWERTY侧滑全键盘按键设计的手机上(早期塞班S60与Windows Mobile等智能操作平台),用户在使用键盘输入时

Android Activity 横竖屏切换的生命周期_Android

前言 在开发中常要处理横竖屏切换,怎么处理先看生命周期 申明 Activity 横竖屏切换时需要回调两个函数 ,所以在此将这个两个函数暂时看成是Activity 横竖屏切换的生命周期的一部分,这两个函数如下 onSaveInstanceState(Bundle outState) :Activity 即将销毁时保存数据 onRestoreInstanceState(Bundle savedInstanceState) : Activity 重建或者恢复时候取出数据 横竖屏切换生命周期 1.启动程

Android开发 简单实用的禁用横竖屏切换实现

一般情况下APP的界面都是为竖屏设计的,一旦自动切换到横屏,界面可能就无法直视了.而且每次屏幕方向切换,当前的页面都会销毁并重新创建. 下面先做一个简单的演示 布局文件:     android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >      Â

解析Android横竖屏切换的问题_Android

在做android 开发时,在默认情况下当屏幕从竖评变到横屏时会触发 onConfigurationChanged 事件 在默认情况下会重新加载画面并显示和横评一样的画面,这样会有2个问题,布局问题,在竖屏 显示的布局到横屏中由于宽和高发生了变化所有多少都会影响到布局(除非你定制2套画面在然后加个判断在横屏时怎么显示,在竖屏时怎么显示),当然最简单的办法就是在项目的 AndroidManifest.xml中找到你所指定的activity 中加上 只竖屏显示的话(android:screenOri

关于Android横竖屏切换及Activity重启周期的总结

禁止Android横竖屏和解决切换屏幕时重启Activity的方法 1.在AndroidManifest.xml的Activity配置中加入 android:screenOrientation="landscape"属性(landscape是横向,portrait是纵向).如: <activity android:name=".ContactsManagerActivity" android:label="@string/app_name"

解析Android横竖屏切换的问题

在做android 开发时,在默认情况下当屏幕从竖评变到横屏时会触发 onConfigurationChanged 事件 在默认情况下会重新加载画面并显示和横评一样的画面,这样会有2个问题, 布局问题,在竖屏 显示的布局到横屏中由于宽和高发生了变化所有多少都会影响到布局(除非你定制2套画面在然后加个判断在横屏时怎么显示,在竖屏时怎么显示),当然最简单的办法就是在项目的 AndroidManifest.xml中找到你所指定的activity 中加上 只竖屏显示的话(android:screenOr

横竖屏切换-android app启动时根据是手机端还是Pad端进行横竖屏判断,以及不同布局

问题描述 android app启动时根据是手机端还是Pad端进行横竖屏判断,以及不同布局 如何判断一个app,如果运行在平板上,就横屏展示,如果运行在手机上就竖屏展示.而且在这两个端不允许横竖屏切换.而且MainActivity得长的不一样.意思就是要有两套布局.需要建什么资源文件夹 解决方案 http://jingyan.baidu.com/article/455a9950aa8aaea16627788a.html