自定义AlertDialog未正确设置宽度

时间:2014-03-29 00:19:43

标签: android alertdialog

我正在尝试使用ImageView制作自定义alertdialog:

public static void showFullSizePhoto(ImageView imageView, Context context) {

    ImageView tempImageView = imageView;

    AlertDialog.Builder imageDialog = new AlertDialog.Builder(context);
    LayoutInflater inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);

    View layout = inflater.inflate(R.layout.image_dialog,
            (ViewGroup) ((Activity) context).findViewById(R.id.layout_root));

    ImageView image = (ImageView) layout.findViewById(R.id.user_fullimage);
    image.setImageDrawable(tempImageView.getDrawable());        
    imageDialog.setView(layout);         
    AlertDialog dialog = imageDialog.create();  
    dialog.show();          
}   

image_dialog.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root" 
    android:orientation="horizontal"
    android:layout_width="wrap_content" 
    android:layout_height="match_parent">
        <ImageView 
            android:id="@+id/user_fullimage" 
            android:layout_width="wrap_content"
            android:layout_height="match_parent">
        </ImageView>    
</LinearLayout>

然而,它没有正确显示我的图像(参见附图)。如何摆脱这个白色条纹,所以对话窗口包裹图像?

image

4 个答案:

答案 0 :(得分:0)

将您的布局更改为

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
    android:id="@+id/user_fullimage"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY">
</ImageView>
</LinearLayout>

答案 1 :(得分:0)

显然,您无法更改AlertDialog的大小,但您可以尝试使用Dialog。 这是解决方案:

Android Image Dialog/Popup same size as image and no border

答案 2 :(得分:0)

将你的布局改为:

  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout_root" 
    android:orientation="horizontal"
    android:layout_width="match_parent" 
    android:layout_height="match_parent">
        <ImageView 
            android:id="@+id/user_fullimage" 
            android:layout_width="wrap_content"
             android:scaleType="fitXY"
            android:layout_height="match_parent">
        </ImageView>    
   </LinearLayout>

答案 3 :(得分:0)

设置

 android:scaleType="fitXY"

代表ImageView