为什么我无法在Motorola Atrix Emulator中看到正确的自定义对话框?

时间:2011-12-13 11:08:16

标签: android android-layout android-emulator dialog customdialog

我为我的应用程序创建了自定义对话框。 虽然我在普通的三星Galary Ace中运行该应用程序然后它在该设备中显示正确但我将在摩托罗拉Atrix运行该应用程序然后自定义对话框没有看到正确的边框。 。 。 请参阅我的自定义对话框中的摩托罗拉Atrix仿真器的图像。 enter image description here

我是否必须删除自定义对话框的边框或我还需要做什么才能在任何设备中查看我的自定义对话框? 如果我必须从自定义对话框中删除边框,请让我知道如何??

感谢。

3 个答案:

答案 0 :(得分:3)

是的,您可以尝试删除border.And set requestWindowFeature(Window.FEATURE_NO_TITLE); 并通过扩展.fix the height and with for your dialog and then try

确保您使用不同的类进行对话

但是正如你所说的那样,只有摩托罗拉设备看起来有所不同。然后很难分清楚会出现什么问题。 重要的是我想与你分享。我正在为摩托罗拉里程碑开发应用程序。完成后我安装在Tablet中。然后对话框大小也会改变,它的外观也是如此。 这不仅仅是自定义对话框,而是进度对话框,其中没有设置任何属性,更改。希望你得到我的观点。最后我想说对话有时出乎意料地表现。

<强>被修改

创建一个对话框类及其布局

public class DisplayDialog extends Dialog implements {
private ImageButton cancel,submit;
private Context context;
private ProgressDialog pd;

public DisplayDialog(Context c) {
   super(c, R.style.Theme_Dialog_Translucent);
    context = c;
}
@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setCanceledOnTouchOutside(false);
    setContentView(R.layout.dialog);
    email_id = (EditText) findViewById(R.id.email_id);
    cancel = (ImageButton) findViewById(R.id.btn_cancel);
    cancel.setOnClickListener(this);
}

}

然后从活动中获取其对象并将其调用到您想要的地方

DisplayDialog dd=new DisplayDialog(this);

dd.show()

答案 1 :(得分:2)

我知道这已经得到了回答,但我就是这样做的......

我在所有的摩托罗拉手机X2,Razr上都看到了这一点......似乎绝对是摩托罗拉风格的一个漏洞。

我通过创建自己的样式并从我的\ android-sdk \ platforms \ android-10 \ data \ res \ drawable-hdpi复制panel_background并将其放在我的drawable中来修复它。如果我使用@android引用它,Eclipse将无法编译:drawable / panel_background。

styles.xml

<style name="Theme.CustomDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@drawable/panel_background</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>

然后只需调用添加了Theme参数的对话框

Dialog dialog = new Dialog(this, R.style.Theme_CustomDialog);

修复了摩托罗拉问题!

答案 2 :(得分:1)

事情是,摩托罗拉风格存在一些问题,它们会覆盖默认的Android风格。所以,你应该再次覆盖这个样式。

至于我,我创建了自己的主题并覆盖了android:windowBackground参数。您可以使用自己的背景图片,但我只是从Android资源中获取默认图片。结果样式如下所示:

<style name="Theme.GreenDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@drawable/panel_background</item>
</style>