Android Loading动画效果
现在项目不是很忙,所以想不能闲着,研究一下大神们是如何实现等待框中的动画显示的,之前看着效果那么帅,那么酷。比猫画虎的写了写代码。
首先在res文件夹下新建一个anim文件
<?xml version="1.0" encoding="utf-8"?>
<animation-list
android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/app_loading0" android:duration="150"/>
<item android:drawable="@drawable/app_loading1" android:duration="150"/>
</animation-list>
再建一个layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_view"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minHeight="60dp"
android:minWidth="180dp"
android:gravity="center"
android:padding="10dp"
android:background="@drawable/loading_bg">
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@anim/dialog_animation"/>
<TextView
android:id="@+id/tv_load"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="数据加载中……" />
</LinearLayout>
接下来开始写一个自定义的dialog
package com.main.view;
import com.example.loadingresults.R;
import android.app.ProgressDialog;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
public class LoadingView extends ProgressDialog{
private AnimationDrawable aDrawable;
private Context context;
private String content;
private ImageView img;
private TextView tv_load;
public LoadingView(Context context,String content) {
super(context);
// TODO Auto-generated constructor stub
this.context = context;
this.content = content;
setCanceledOnTouchOutside(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.viewlayout);
img = (ImageView) findViewById(R.id.img);
tv_load = (TextView) findViewById(R.id.tv_load);
aDrawable = (AnimationDrawable) img.getDrawable();
img.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
aDrawable.start();
tv_load.setText(content);
}
});
}
}