读书人

android 自定义Dialog 显示有关问题 ?

发布时间: 2013-12-30 14:16:08 作者: rapoo

android 自定义Dialog 显示问题 ?请求解决
android 自定义Dialog 显示有关问题 ?请求解决
请看图,希望只把红线圈的显示出来,XML只有红线圈的这么大
代码
Dialog dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.edit_colorchange_dialog);
Window dialogWindow = dialog.getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.x = 100;
lp.y = -300;
dialogWindow.setAttributes(lp);
dialog.show();


layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="266.4sp"
android:layout_height="58.6sp"
android:orientation="vertical" >

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/zhengwen_xuanyanse" >

</LinearLayout>

</LinearLayout>
[解决办法]

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>

[解决办法]
楼主就是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);

读书人网 >Android

热点推荐