自己定义的progressdialog

参考两个:

选择1来实现 

1. http://www.open-open.com/lib/view/open1335576985577.html

2. http://blog.csdn.net/qjlhlh/article/details/7979179

主体代码 如下:

/**
 * 相关的文件:drawable中的loading图片,loading_round.xml动画文件
 * ,styles文件中的LoadingDialog 风格文件
 * ,widget_loadingdialog布局文件
 * @author lsj
 */
public class LoadingDialog extends Dialog{
	private Context context;
	private ImageView mImageView;
	private TextView mTextView;
	
	public LoadingDialog(Context context, int theme) {
		super(context, theme);
	}
	//默认的theme
	public LoadingDialog(Context context){
		super(context, R.style.LoadingDialog);
		this.context=context;
	}	

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setCancelable(false);
		Log.i("loadingdialog","onCreate");
		View loadingView = getLayoutInflater().inflate(R.layout.widget_loadingdialog,null, false);	
		mImageView = (ImageView)loadingView.findViewById(R.id.loadingImageView);
		mTextView =(TextView)loadingView.findViewById(R.id.loading_text);
		setContentView(loadingView);
	}
	/**
	 * 设置title,在调用 show的时候才onCreate()
	 * 构造方法中还没有onCreate(),所以不能setTitle()
	 * @param title
	 */
	public void show(String title) {
		super.show();
		mTextView.setText(title);
		Log.i("loadingdialog","show");
		AnimationDrawable mAnimationDrawable = (AnimationDrawable)mImageView.getBackground();
		mAnimationDrawable.start();	
	}

	@Override
	public void onBackPressed() {
		super.onBackPressed();
		if (isShowing()){
			dismiss();
		}
	}

	@Override
	public void dismiss() {
		super.dismiss();
	}
	
	
}

 

style的如下,

<!-- LoadingDialog theme,可以加入背景图片 -->
    <style name="LoadingDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowNoTitle">true</item>
    </style>

  

定义的布局文件如下,还可以更加复杂 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:minHeight="60dp"
    android:minWidth="200dp"
    android:gravity="center"
    android:background="@color/white" >
    
    	<ImageView
    	    android:id="@+id/loadingImageView"
    	    android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:background="@drawable/loading_round">
    	</ImageView>
    	
    	<TextView 
    	    android:id="@+id/loading_text"
    	    android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:layout_gravity="center_vertical"
    	    android:textSize="20dp"
    	    />
</LinearLayout>

  最后是动画 的文件

<?xml version="1.0" encoding="utf-8"?> 
<animation-list 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:oneshot="false"> 
    <item android:drawable="@drawable/loading_01" android:duration="100"/> 
    <item android:drawable="@drawable/loading_02" android:duration="100"/> 
    <item android:drawable="@drawable/loading_03" android:duration="100"/> 
    <item android:drawable="@drawable/loading_04" android:duration="100"/> 
    <item android:drawable="@drawable/loading_05" android:duration="100"/> 
    <item android:drawable="@drawable/loading_06" android:duration="100"/> 
    <item android:drawable="@drawable/loading_07" android:duration="100"/> 
    <item android:drawable="@drawable/loading_08" android:duration="100"/> 
    <item android:drawable="@drawable/loading_09" android:duration="100"/> 
    <item android:drawable="@drawable/loading_10" android:duration="100"/> 
    <item android:drawable="@drawable/loading_11" android:duration="100"/> 
    <item android:drawable="@drawable/loading_12" android:duration="100"/> 
</animation-list>

  

 

posted @ 2014-11-04 23:03  chuiyuan  阅读(151)  评论(0编辑  收藏  举报