我正在尝试翻译Bitmap
所以我只是更新它的x和y所以它会对角移动以了解线程,但问题是当应用程序启动时,Bitmap
不会显示up,我注意到延迟与我在处理程序的postDelayed方法中设置的时间有关,但我认为这个postDelayed方法只能控制位图在屏幕上移动的速度,而不是我打开时显示的位图延迟应用程序。
public class MainActivity extends Activity {
Canvas canvas;
InnerView innerView;
Handler mHandler;
Bitmap thisBitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
thisBitmap =
BitmapFactory.decodeResource(getResources(), R.drawable.my_image);
mHandler = new Handler();
innerView = new InnerView(this);
setContentView( innerView);
}
class InnerView extends SurfaceView implements Runnable {
Thread ourThread = null;
SurfaceHolder ourHolder;
Paint paint;
int posX = 100;
int posY = 100;
public InnerView (Context context) {
super(context);
ourHolder = getHolder();
paint = new Paint();
}
@Override
public void run() {
update
draw();
mHandler.postDelayed(this, 2000);
}
public void update() {
posX += 10;
posY += 10;
}
public void draw() {
if (ourHolder.getSurface().isValid()) {
canvas = ourHolder.lockCanvas();
canvas.drawColor(Color.BLACK);//the background
paint.setColor(Color.argb(255, 255, 255, 255));
canvas.drawBitmap( goodDotList[0], posX, posY, paint);
ourHolder.unlockCanvasAndPost(canvas);
}
}
}//END inner class: InnerView
}//END MainActivity class