您的位置:首页 > 其它

自己定义的progressdialog

2014-11-04 23:03 197 查看
参考两个:

选择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>


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: