转自:http://menjoy.iteye.com/blog/1255291


启动界面的效果图:



启动界面

主要的实现类LoadingView :

Java代码 收藏代码
  1. packagewht.android.loading;
  2. importandroid.content.Context;
  3. importandroid.graphics.Canvas;
  4. importandroid.util.AttributeSet;
  5. importandroid.widget.ImageView;
  6. publicclassLoadingViewextendsImageViewimplementsRunnable
  7. {
  8. privatebooleanisStop=false;
  9. privateint[]imageIds;
  10. privateintindex=0;
  11. privateintlength=1;
  12. publicLoadingView(Contextcontext)
  13. {
  14. this(context,null);
  15. }
  16. publicLoadingView(Contextcontext,AttributeSetattrs)
  17. {
  18. super(context,attrs);
  19. }
  20. publicvoidsetImageIds(int[]imageId)
  21. {
  22. this.imageIds=imageId;
  23. if(imageIds!=null&&imageIds.length>0)
  24. {
  25. length=imageIds.length;
  26. }
  27. }
  28. @Override
  29. protectedvoidonDetachedFromWindow()
  30. {
  31. //TODOAuto-generatedmethodstub
  32. super.onDetachedFromWindow();
  33. isStop=true;
  34. }
  35. @Override
  36. protectedvoidonDraw(Canvascanvas)
  37. {
  38. //TODOAuto-generatedmethodstub
  39. super.onDraw(canvas);
  40. if(imageIds!=null&&imageIds.length>0)
  41. {
  42. this.setImageResource(imageIds[index]);
  43. }
  44. }
  45. @Override
  46. publicvoidrun()
  47. {
  48. while(!isStop)
  49. {
  50. index=++index%length;
  51. postInvalidate();
  52. try
  53. {
  54. Thread.sleep(400);
  55. }
  56. catch(InterruptedExceptione)
  57. {
  58. e.printStackTrace();
  59. }
  60. }
  61. }
  62. publicvoidstartAnim()
  63. {
  64. newThread(this).start();
  65. }
  66. }


MainActivity:

Java代码 收藏代码
  1. packagewht.android.loading;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. publicclassMainActivityextendsActivity
  5. {
  6. privateLoadingViewmain_imageview;
  7. @Override
  8. publicvoidonCreate(BundlesavedInstanceState)
  9. {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.main);
  12. main_imageview=(LoadingView)findViewById(R.id.main_imageview);
  13. initLoadingImages();
  14. newThread()
  15. {
  16. @Override
  17. publicvoidrun()
  18. {
  19. main_imageview.startAnim();
  20. }
  21. }.start();
  22. }
  23. privatevoidinitLoadingImages()
  24. {
  25. int[]imageIds=newint[6];
  26. imageIds[0]=R.drawable.loader_frame_1;
  27. imageIds[1]=R.drawable.loader_frame_2;
  28. imageIds[2]=R.drawable.loader_frame_3;
  29. imageIds[3]=R.drawable.loader_frame_4;
  30. imageIds[4]=R.drawable.loader_frame_5;
  31. imageIds[5]=R.drawable.loader_frame_6;
  32. main_imageview.setImageIds(imageIds);
  33. }
  34. }

布局文件main.xml

Java代码 收藏代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"android:background="#e1e1e1">
  5. <wht.android.loading.LoadingView
  6. android:layout_gravity="center_horizontal"android:layout_height="wrap_content"
  7. android:id="@+id/main_imageview"android:src="@drawable/loader_frame_1"
  8. android:layout_marginTop="190dp"android:layout_width="wrap_content"
  9. ></wht.android.loading.LoadingView>
  10. <TextView
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:text="启动中..."
  14. android:layout_marginTop="10dip"
  15. android:textColor="#666666"
  16. android:layout_gravity="center_horizontal"
  17. android:textSize="20sp"
  18. />
  19. </LinearLayout>

更多相关文章

  1. Android 混淆代码的时候出现问题
  2. 有关android安全性的问题--代码混淆
  3. Android NDK so crash,定位目标代码使用
  4. [置顶] android俄罗斯方块完整代码
  5. Android中自定义Toast显示在其他界面上
  6. 某个蝰蛇音效的卡刷包代码分析
  7. Android自动生成代码工具整理
  8. Android不常用代码(1)

随机推荐

  1. Android系统基础介绍
  2. 高亮的关键字
  3. [Android M] Bluedroid修改蓝牙默认名称
  4. Android访问网络
  5. webview的白屏,和硬件加速
  6. Android,TextView的所有属性和方法
  7. 获取android顶部状态栏高度的两种方式
  8. 编译android源码
  9. Android根据 uri 获得文件真实路径
  10. 【Android 开发教程】屏幕方向的改变