Android 如何更改对话框的形状?
在我的应用程序中,我使用了许多对话框(弹出窗口),我想给它们一个圆角形状 我创建这些弹出窗口的方式如下: 在java代码中,我创建了如下函数:Android 如何更改对话框的形状?,android,background,dialog,Android,Background,Dialog,在我的应用程序中,我使用了许多对话框(弹出窗口),我想给它们一个圆角形状 我创建这些弹出窗口的方式如下: 在java代码中,我创建了如下函数: private void showpopup(){ dialog = new Dialog(this); dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(getLayoutInflater().inflate(R.lay
private void showpopup(){
dialog = new Dialog(this);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(getLayoutInflater().inflate(R.layout.popup, null));
dialog.setCancelable(false);
TextView fin = (TextView) dialog.findViewById(R.id.solu);
fin.setText("¡¡safsfasfsafs!!");
fin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
我在那里调用的布局是这样创建的:
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape"
android:orientation="vertical"
android:padding="10dp"
>
<TextView
android:id="@+id/solu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25sp"
android:padding="10dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
</LinearLayout>
最后,我在后台调用的xml“形状”是:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="20dp"/>
<stroke
android:width="1dp"
android:color="@color/black"/>
</shape>
结果是这样的:
private void showpopup(){
dialog = new Dialog(this);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(getLayoutInflater().inflate(R.layout.popup, null));
dialog.setCancelable(false);
TextView fin = (TextView) dialog.findViewById(R.id.solu);
fin.setText("¡¡safsfasfsafs!!");
fin.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
正如你所看到的,我没有实现我想要的…试着从这里使用我的答案:(这与你试图做的事情是一样的)。创建自定义主题(参考您自己的可绘制形状):
您可能希望设置窗口背景而不是布局背景。我更改了android:background=“@drawable/shape”for android:windowbackground=“@drawable/shape”,不允许出现代码错误:S:error:在包“android”中找不到属性“windowbackground”的资源标识符这不是更改窗口背景的方式。如果您想从XML中执行此操作,则需要定义一个主题。否则,只需执行
getWindow().setBackgroundX()
我不明白你的意思,我必须在哪里执行,以及如何执行?dialog.getWindow().setBackground…()
atshowpopup
dialog = new Dialog(this, R.style.ThemeWithCorners);