写了一个包含Listview的AlertDialog,设置完背景透明之后,还是有黑色包裹着Listview
如图
下面是具体的代码实现
背景样式
<style name="QRCodeDialogStyle" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:background">#00000000</item>
<item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<item name="android:windowNoTitle">true</item><!--无标题-->
<item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
<item name="android:backgroundDimEnabled">true</item><!--背后的Activity是否模糊-->
<item name="android:backgroundDimAmount">0.5</item>
</style>
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/qr_ll"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ffffff"
android:orientation="vertical" >
<ListView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:background="#ffffff"
android:id="@+id/qrcode_listview">
</ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:background="#00000000"
android:orientation="vertical" >
<TextView
android:id="@+id/qr_text_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存图片"
android:textSize="20sp" />
</LinearLayout>
Java代码
arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.qrcode_dialog_item, R.id.qr_text_item);
arrayAdapter.add("保存到本地");
arrayAdapter.add("保存到本地");
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.qrcode_dialog1_layout, null);
ListView listView = (ListView) layout.findViewById(R.id.qrcode_listview);
listView.setAdapter(arrayAdapter);
builder.setView(layout);
alertDialog = builder.create();
alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
//alertDialog.setTitle("选择教室类型");
//alertDialog.setView(listView);
alertDialog.show();
若将
style里面的background改为白色这变成下图
<item name="android:background">#ffffff</item>