我自己写的整体效果是 : 点击第一张图片,就是红色的×, dialog 消失
点击第二张图片,就是一个人的图片,进行界面的跳转
Android Dialog,无黑框,透明,这里只是简单的实现,请大神指教
如果你的背景始终是黑色去不掉的话,你可以尝试这样做 : 三个步骤
1. 首先 Java 代码 : 只粘贴了重点代码,细节部分不做详细解释 :
Context context = MainActivity.this; AlertDialog dia = new Dialog(context, R.style.edit_AlertDialog_style); dia.setContentView(R.layout.picture); ImageView picture_error = (ImageView) dia.findViewById(R.id.picture_error); ImageView picture_person = (ImageView) dia.findViewById(R.id.picture_person); dia.show(); dia.setCanceledOnTouchOutside(true); Window w = dia.getWindow(); WindowManager.LayoutParams lp = w.getAttributes(); lp.x = 0; lp.y = 40; dia.onWindowAttributesChanged(lp); picture_error.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dia.dismiss(); } }); picture_person.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // setSelectFragmentItem(); //跳转另一个界面 dia.dismiss(); }});
2. dialog 的样式, 就是创建对象的时候的样式 (R.style.edit_AlertDialog_style)
如果遇到黑框始终去不掉的问题,其实就是因为你的样式没有修改好,你可以尝试拷贝这一部分
<style name="edit_AlertDialog_style" parent="@android:style/Theme.Dialog"> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <!-- 是否启用标题栏 --> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:background">@android:color/transparent</item> <item name="android:backgroundDimEnabled">true</item> </style>
3. 一个基本的布局文件 : 随便找两个图片替换掉就成
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" android:gravity="center"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="right" android:orientation="vertical"> <ImageView android:id="@+id/picture_person" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:src="@drawable/com_facebook_close"/> <ImageView android:id="@+id/picture_error" android:layout_width="100dp" android:layout_height="100dp" android:clickable="true" android:src="@drawable/tan"/> </LinearLayout> </RelativeLayout>