我已经构建了一个自定义对话框,顶部和底部都有黑线。它们只出现在Galaxy S2上。在其他一些设备上它看起来不错。我必须设置一个属性来摆脱它们吗?
这是我的代码:
public class MyDialog extends Dialog {
private Context context;
private String title, message;
private TextView titleView, messageView;
private ImageView icon;
private int iconRes;
private boolean spin;
public MyDialog(Context context, int icon, boolean spin, String title, String message) {
...
}
private void init() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setContentView(R.layout.my_dialog);
...
}
}
布局:
<?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="wrap_content"
android:minWidth="300dip" style="@style/basic" android:orientation="vertical">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:background="@drawable/titlebar_bg"
android:orientation="horizontal" android:gravity="center_vertical"
android:paddingBottom="5sp">
<ImageView android:src="@drawable/info" android:id="@+id/dialogIcon"
android:layout_height="32sp" android:layout_width="32sp" />
<TextView android:id="@+id/titleText" android:text="Title"
android:textSize="20sp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textColor="@color/darkgrey"
android:layout_marginLeft="5sp" />
</LinearLayout>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:paddingTop="5sp"
android:textColor="#000" android:id="@+id/messageText" android:text="Message" />
</LinearLayout>
答案 0 :(得分:3)
经过相当长的一段时间调查这个问题,我发现三星的资源似乎有一个失败的panel_background.9.png ......
获取此黑线的解决方法是为Dialogs设置自己的背景,如下所示:
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/panel_background</item>
</style>
然后从android源代码复制panel_background.9.png或创建一个自己的!然后确保您的Dialog在style.xml中使用新的Theme createt实例化...
只有一个问题,现在你的对话框会松开“Samsung-Dialog-Style”。这意味着角落可能与您应用中的其他默认对话框不同...