?? waitcanvas.java
字號:
package com.hziee.phone_book.ui;
import java.util.*;
import javax.microedition.lcdui.*;
public class WaitCanvas extends Canvas
{
/**該類用以個圓弧來表示工作進度*/
private int mCount, mMaximum;
private int mInterval;
private int mWidth, mHeight, mX, mY, mRadius;
private String mMessage;
private boolean run = false;
public WaitCanvas(String message, boolean run)
{
this.mMessage = message;
mCount = 0;
mMaximum = 36;
mInterval = 100;
mWidth = getWidth();
mHeight = getHeight();
// Calculate the radius.計算半徑
int halfWidth = (mWidth - mRadius) / 2;
int halfHeight = (mHeight - mRadius) / 2;
mRadius = Math.min(halfWidth, halfHeight);
// Calculate the location.
mX = halfWidth - mRadius / 2;
mY = halfHeight - mRadius / 2;
// Create a Timer to update the display.
if (run)
{
TimerTask task = new TimerTask()
{
public void run()
{
mCount = (mCount + 1) % mMaximum;
repaint();
}
};
Timer timer = new Timer();
timer.schedule(task, 0, mInterval);
}
}
/**
* @param message The mMessage to set.
*/
public void setMMessage(String message)
{
mMessage = message;
}
public void paint(Graphics g)
{
int theta = -(mCount * 360 / mMaximum);
// Clear the whole screen.刷新整個屏幕
g.setColor(255, 255, 255);
g.fillRect(0, 0, mWidth, mHeight);
// Now draw the pinwheel.
g.setColor(128, 128, 255);
/*
* drawArc()參數詳細內容
mX - 要繪制弧的左上角的 x 坐標
mY - 要繪制弧的左上角的 y 坐標。
mRadius(1) - 要繪制弧的寬度。
mRadius(2) - 要繪制弧的高度。
參數5 - 開始角度。
參數6 - 相對于開始角度而言,弧跨越的弧度。
*/
g.drawArc(mX, mY, mRadius, mRadius, 0, 360);
g.fillArc(mX, mY, mRadius, mRadius, theta + 90, 90);
g.fillArc(mX, mY, mRadius, mRadius, theta + 270, 90);
// Draw the message, if there is a message.
if (mMessage != null)
{
g.drawString(mMessage, mWidth / 2, mHeight, Graphics.BOTTOM
| Graphics.HCENTER);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -