1.为什么做这个弹出框?
a.Android自带的弹出框确实太丑了,而且版本不同弹出的效果还不一样!
b.纯粹的new一个AlertDialog要写很多行,代码维护不便,重复劳动啊!
c.代码看起多,不简洁,肯定不爽!
2.如何做一个简洁的弹出框用于提示!
a.建立一个class继承Dialog
public class IOSDialog extends Dialog {
public IOSDialog(Context context) {
super(context,R.style.ThemeIOSDialog);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iso_dialog);
Button btnOk = (Button) findViewById(R.id.btn_ok);
btnOk.setOnClickListener(new android.view.View.OnClickListener() {
@Override
public void onClick(View v) {
cancel();
}
});
}
}
b.在res/values/styles里面写入样式,便于设置dialog的背景为透明
<!-- IOSDialog -->
<style name="ThemeIOSDialog" parent="@android:style/Theme.Dialog">
<!-- Dialog的windowFrame框为无 -->
<!-- <item name="android:windowFrame">@null</item> -->
<!-- 边框 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">false</item>
<!-- 半透明 -->
<item name="android:windowNoTitle">true</item>
<!-- 设置dialog的背景 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 背景是否模糊显示 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 模糊 -->
<item name="android:textColorPrimaryInverse">@android:color/black</item>
</style>
c.最后在写入布局文件,应用于dialog
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ios_dlg_bg"
android:layout_marginBottom="16dp"
>
<View
android:id="@+id/view_line"
android:layout_below="@+id/text1"
android:layout_height="0.5dp"
android:layout_width="fill_parent"
android:background="#dcdcdc"
/>
<Button
android:gravity="center"
android:textSize="18sp"
android:textStyle="bold"
android:layout_below="@+id/view_line"
android:text="确定"
android:textColor="#037BFF"
android:id="@+id/btn_ok"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@android:color/transparent"
android:padding="12dp"
/>
<TextView
android:gravity="center"
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="你的运气真是太好了!"
android:textColor="#666666"
android:textSize="14sp" />
</RelativeLayout>
d.最后,在Activity里面需要的地方调用就可以啦
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
Button btnIOSDialog = (Button) findViewById(R.id.button1);
btnIOSDialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new IOSDialog(MainActivity.this).show();
}
});
}
}
无码无真相:http://download.csdn.net/detail/xiaoshubing/9200489