android 自定义Dialog 显示有关问题 ?请求解决


android 自定义Dialog 显示问题 请求解决

请看图,希望只把红线圈的显示出来,XML只有红线圈的这么大

代码

Dialog dialog = new Dialog(getActivity());

dialog.setContentView(R.layout.edit_colorchange_dialog);<br />

Window dialogWindow = dialog.getWindow();<br />

WindowManager.LayoutParams lp = dialogWindow.getAttributes();<br />

lp.x = 100;         <br />

lp.y = -300;          <br />

        dialogWindow.setAttributes(lp);

dialog.show();<br />



layout.xml

< xml version="1.0" encoding="utf-8" >

<LinearLayout xmlns:android=""

    android:layout_width="266.4sp"

    android:layout_height="58.6sp"

    android:orientation="vertical" >


    <LinearLayout

        android:layoutwidth="wrapcontent"

        android:layoutheight="wrapcontent"

        android:background="@drawable/zhengwen_xuanyanse" >

        

    </LinearLayout>


</LinearLayout>

移动开发 Android 程序开发

闪光的不孝子 11 years, 4 months ago

楼主就是dialog的宽度太宽多出了一部分吧?要先show你的dialog,再设置属性,加个宽度值。

  dialog.show();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.x = 100;         
lp.y = -300;
lp.width = 266.4 * 3;//这里如果你是xxhdpi,那么值就是3,hdpi的话,值就是2,xhdpi的值应该是2.5
dialogWindow.setAttributes(lp);


无产光辉指 answered 11 years, 4 months ago

  Dialog dialog = new Dialog(MainActivity.this, R.style.dialog);
ImageView img = new ImageView(MainActivity.this);
img.setImageResource(R.drawable.a);
img.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
dialog.setContentView(img);
dialog.show();



  <style name="dialog" parent="@android:style/Theme.Holo.Light.Dialog">
        <item name="android:windowNoTitle">true</item>
    </style>


xinDE希望 answered 11 years, 4 months ago

Your Answer