android使用动画画心形,Android中利用画图类和线程画出闪烁的心形,送给亲爱的他(她)...

本文讲解主要涉及的知识点:

1.线程控制

2.画图类

3.心形函数

大家先看图片:

87e4c88a0991920a7c2726bdf4462928.png

2840ba997c46e69e33bfb17b0d566aed.png

55dc379a12841456c1abb3d4b1a188b0.png

825e1ece1d7139a50b3126f82cffec64.png

68b4439d5f3cb8eef74a53f1d99a7ac9.png

d545d8ee72204dc28ab764c9edc6f0c4.png

因为前一段时间在写画图类,刚好有一个线程控制画图闪烁的,我就想说我能不能做一个心形闪烁的,出来的效果就如图,先贴再讲解代码:

里面设置两个类,一个是我们的activity类,这个类用来显示示图,然后建一个继承SurfaceView的类,我们在这里面画图。先贴两个累的代码:

主类名:GameMainActivity,画图类类名:Love.

1  package com.cz.game.demo;

2

3  import android.app.Activity;

4  import android.os.Bundle;

5

6  public class GameMainActivity extends Activity {

7      /** Called when the activity is first created. */

8

9      private Love love;

10     @Override

11     public void onCreate(Bundle savedInstanceState) {

12         super.onCreate(savedInstanceState);

13         this.love = new Love(this);

14         setContentView(love);

15     }

16 }

画图类:

1   /**

2    *

3    */

4   package com.cz.game.demo;

5

6   import android.content.Context;

7   import android.graphics.Canvas;

8   import android.graphics.Color;

9   import android.graphics.Paint;

10  import android.graphics.RectF;

11  import android.graphics.Typeface;

12  import android.view.SurfaceHolder;

13  import android.view.SurfaceView;

14

15  /**

16   * @author CZ

17   *

18   */

19  public class Love extends SurfaceView implements SurfaceHolder.Callback,

20          Runnable {

21

22      boolean mbloop = false;

23      SurfaceHolder mSurfaceHolder = null;

24      private Canvas canvas;

25      int miCount = 0;

26      int y = 50;

27

28      /**

29       * @param context

30       */

31      public Love(Context context) {

32          super(context);

33          mSurfaceHolder = this.getHolder();

34          mSurfaceHolder.addCallback(this);

35          this.setFocusable(true);

36          this.setKeepScreenOn(true);

37          mbloop = true;

38      }

39

40      /*

41       * (non-Javadoc)

42       *

43       * @see

44       * android.view.SurfaceHolder.Callback#surfaceChanged(android.view.SurfaceHolder

45       * , int, int, int)

46       */

47      @Override

48      public void surfaceChanged(SurfaceHolder holder, int format, int width,

49              int height) {

50          // TODO Auto-generated method stub

51

52      }

53

54      /*

55       * (non-Javadoc)

56       *

57       * @see

58       * android.view.SurfaceHolder.Callback#surfaceCreated(android.view.SurfaceHolder

59       * )

60       */

61      @Override

62      public void surfaceCreated(SurfaceHolder holder) {

63          // TODO Auto-generated method stub

64          new Thread(this).start();

65      }

66

67      /*

68       * (non-Javadoc)

69       *

70       * @seeandroid.view.SurfaceHolder.Callback#surfaceDestroyed(android.view.

71       * SurfaceHolder)

72       */

73      @Override

74      public void surfaceDestroyed(SurfaceHolder holder) {

75          // TODO Auto-generated method stub

76          mbloop = false;

77      }

78

79      /*

80       * (non-Javadoc)

81       *

82       * @see java.lang.Runnable#run()

83       */

84      @Override

85      public void run() {

86          // TODO Auto-generated method stub

87          while (mbloop) {

88              try {

89                  Thread.sleep(200);

90              } catch (Exception e) {

91                  // TODO: handle exception

92              }

93              synchronized (mSurfaceHolder) {

94                  Draw();

95              }

96   &nb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值