zoukankan      html  css  js  c++  java
  • 自己定义的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>
    

      

  • 相关阅读:
    自定义input标签输入框
    sys.argv 启动时可以传入变量
    falcon 监控
    wrk 压测工具
    mysql UPDATE和REPLACE
    tesseract识别图片中文字
    centos 查看日志 & 查找文件、目录、内容 & centos查看磁盘使用情况
    压力测试
    tensorflow + scikit-learn
    Pycharm快捷键配置
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/4075134.html
Copyright © 2011-2022 走看看