android中透明Dialog及ProgressDialog的實現
首先是一個普通的版本:
public static final int SHOWDIALOG = 10000; @Override protected Dialog onCreateDialog(int id) { switch (id) { case SHOWDIALOG: Dialog dialog = new Dialog(this,R.style.LodingDialog); dialog.setContentView(R.layout.dialog); return dialog; default: return null; } }
dialog.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="加載中..." /> </LinearLayout>
style.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="LodingDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> </style> </resources>
下麵是美化版本:
需要用到的圖片:
也可以到這裏下載:https://download.csdn.net/detail/jdsjlzx/4138421
layout_progressbar.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ProgressBar android: android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:indeterminate="false" android:indeterminateDrawable="@drawable/ic_circle_progress" /> <TextView android: android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:text="loading..." android:textSize="12sp" android:textAppearance="?android:textAppearanceMedium" android:textColor="@color/blue" /> </LinearLayout>
位於drawable目錄下:
ic_circle_progress.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:andro> <item> <rotate android:drawable="@drawable/ic_progress_normal" android:fromDegrees="-315.0" android:toDegrees="0.0" android:pivotX="50.0%" android:pivotY="50.0%" /> </item> </layer-list>
style.xml
<style name="new_circle_progress" parent="@android:style/Theme.Dialog"> <item name="android:indeterminateDrawable">@drawable/ic_circle_progress</item> <item name="android:windowFrame">@null</item><!--邊框--> <item name="android:windowIsFloating">true</item><!--是否浮現在activity之上--> <item name="android:windowIsTranslucent">false</item><!--半透明--> <item name="android:windowBackground">@color/transparent</item><!--背景透明--> <item name="android:backgroundDimEnabled">false</item><!--模煳--> </style>
代碼:
private final static int PROGRESSFORWAIT = 1000; @Override protected Dialog onCreateDialog(int id, Bundle args) { // TODO Auto-generated method stub super.onCreateDialog(id, args); switch (id) { case PROGRESSFORWAIT: Dialog dialog = new Dialog(this,R.style.new_circle_progress); dialog.setContentView(R.layout.layout_progressbar); return dialog; default: return null; } }
最後更新:2017-04-02 22:16:33