对话框不占用父级大小

时间:2010-06-18 18:42:04

标签: android layout dialog

我正在创建一个放大图像的对话框,
但是,我的内容是240px,我想将其调整为屏幕宽度,调整为“fill_parent”。你能告诉我这里有什么问题吗?我的图片很小,240px,而不是480px。

final Dialog dialog = new Dialog(myview);
dialog.setContentView(R.layout.zoom);
dialog.setTitle(""+passInfoNom+" ");
imgView2 = (ImageView)dialog.findViewById(R.id.ImageZoom);
imgView2.setImageDrawable(image);
dialog.show();

布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffffffff"
>

<ImageView android:id="@+id/ImageZoom" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
</ImageView>
</LinearLayout>

3 个答案:

答案 0 :(得分:2)

您似乎已将内容设置为“fill_parent”,但尚未将对话框的大小设置为“fill_parent”。改变这一点,你应该看到一些结果。

但是我有一个问题:如果你想让缩放对话框占据整个屏幕,为什么不开始一个新的活动,或裁剪图像并将裁剪的部分设置为内容?你会放大一个对话框,这对我来说似乎很奇怪。例如,谷歌地图只是放大现有的视图。

答案 1 :(得分:2)

正如在另一个anwser中指出的那样,我通过创建自己的Dialog类并设置其大小来调整对话框的大小:

public class ZoomZoom extends Dialog 
{
    public ZoomZoom(Context context) {
    super(context);
}

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.zoom);
    LayoutParams params = getWindow().getAttributes(); 
    params.width = LayoutParams.FILL_PARENT; 
    //params.height = LayoutParams.FILL_PARENT; 
    params.height = screenLargeur;
    getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);        
    imgView2 = (ImageView)findViewById(R.id.ImageZoom);
    imgView2.setImageDrawable(imageZ);
    imgView2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            dialog.hide();
           }
        });
    }
}

答案 2 :(得分:0)

不确定这是否已经为您解决但您也可以使用android:minWidth和android:minHeight,将它们设置为dip。例如:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/send_chat_layout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:background="#292929"
android:minWidth="300dip"
android:minHeight="400dip">

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>

</LinearLayout>

根据我的理解,由于Android在分辨率方面的分辨率,使用360x480屏幕,将分钟设置为340x460将使其方面保持更大的分辨率。