1 import android.content.Context;
2 import android.graphics.Canvas;
3 import android.graphics.Color;
4 import android.graphics.Paint;
5 import android.util.AttributeSet;
6 import android.view.View;
7
8 /**
9 * 旋转的方块
10 *
11 * @author dr
12 */
13 public class RotatingRect extends View {
14
15 private Paint p; // 画笔对象
16 private float degrees = 0;
17
18 /** 资源解析程序来使用的 */
19 public RotatingRect(Context context, AttributeSet attrs, int defStyleAttr) {
20 super(context, attrs, defStyleAttr);
21
22 initProperties();
23 }
24
25 public RotatingRect(Context context, AttributeSet attrs) {
26 super(context, attrs);
27
28 initProperties();
29 }
30
31 public RotatingRect(Context context) {
32 super(context);
33
34 initProperties();
35 }
36
37 /** 初始化属性 */
38 private void initProperties() {
39 p = new Paint();
40 p.setColor(Color.RED); // 设置红色
41 }
42
43 @Override
44 public void draw(Canvas canvas) {
45 super.draw(canvas);
46
47 canvas.save(); // 保存状态
48 // canvas.rotate(degrees); // 绕着左上角旋转
49 canvas.translate(200, 200); // 调整位置,为了显示全。
50 canvas.rotate(degrees, 50, 50); // 绕着中心点旋转。
51 // 0, 0, 100, 100 距离边界的值。
52 canvas.drawRect(0, 0, 100, 100, p);
53
54 degrees++;
55 canvas.restore(); // 恢复
56
57 // 使其无效。所以再重绘的时候,查看这个view是否是有效状态,
58 invalidate();
59 }
60
61 }
1 <com.jikexueyuan.drawapi.RotatingRect
2 android:layout_width="fill_parent"
3 android:layout_height="fill_parent" />