app启动界面实现切换进度

启动界面的效果图: 

1.jpg 

主要的实现类LoadingView :
package wht.android.loading;

import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.ImageView;

public class LoadingView extends ImageView implements Runnable
{
private boolean isStop = false;

private int[] imageIds;
private int index = 0;
private int length = 1;

public LoadingView(Context context)
{
this(context, null);
}

public LoadingView(Context context, AttributeSet attrs)
{
super(context, attrs);
}

public void setImageIds(int[] imageId)
{
this.imageIds = imageId;
if(imageIds != null && imageIds.length > 0)
{
length = imageIds.length;
}
}

@Override
protected void onDetachedFromWindow()
{
// TODO Auto-generated method stub
super.onDetachedFromWindow();
isStop = true;
}

@Override
protected void onDraw(Canvas canvas)
{
// TODO Auto-generated method stub
super.onDraw(canvas);
if(imageIds != null && imageIds.length > 0)
{
this.setImageResource(imageIds[index]);
}
}

@Override
public void run()
{
while(!isStop)
{
index = ++index % length;
postInvalidate();
try
{
Thread.sleep(400);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}

public void startAnim()
{
new Thread(this).start();
}

}

MainActivity

package wht.android.loading;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity
{

private LoadingView main_imageview;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
main_imageview = (LoadingView)findViewById(R.id.main_imageview);
initLoadingImages();

new Thread()
{
@Override
public void run()
{
main_imageview.startAnim();
}
}.start();

}

private void initLoadingImages()
{
int[] imageIds = new int[6];
imageIds[0] = R.drawable.loader_frame_1;
imageIds[1] = R.drawable.loader_frame_2;
imageIds[2] = R.drawable.loader_frame_3;
imageIds[3] = R.drawable.loader_frame_4;
imageIds[4] = R.drawable.loader_frame_5;
imageIds[5] = R.drawable.loader_frame_6;

main_imageview.setImageIds(imageIds);
}
}

布局文件main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation
="vertical" android:layout_width="fill_parent"
android:layout_height
="fill_parent" android:background="#e1e1e1">
<wht.android.loading.LoadingView
android:layout_gravity="center_horizontal" android:layout_height="wrap_content"
android:id
="@+id/main_imageview" android:src="@drawable/loader_frame_1"
android:layout_marginTop
="190dp" android:layout_width="wrap_content"
></wht.android.loading.LoadingView>

<TextView
android:layout_width="wrap_content"
android:layout_height
="wrap_content"
android:text
="启动中..."
android:layout_marginTop
="10dip"
android:textColor
="#666666"
android:layout_gravity
="center_horizontal"
android:textSize
="20sp"
/>
</LinearLayout>

转自:http://www.apkbus.com/android-15825-1-1.html

原文地址:https://www.cnblogs.com/shanzei/p/2414113.html