[英]SlidingUpPanelLayout won't collapse on resume after OS kill my activity
[英]Why won't onDraw() resume after powering down/locking device?
編輯我絕不是android經驗豐富的人; 這是我的第一個應用程序!
我正在嘗試在屏幕上繪制精靈並將其在屏幕上移動。 當我按下主屏幕按鈕然后返回到應用程序時,繪圖將停止並繼續按預期進行,但是當我按下電源按鈕或鎖定按鈕時,繪圖過程將完全停止。 有人可以給我一些有關如何處理此問題的說明嗎? 謝謝。
這是代碼:
package com.MB2Assignment.assignment;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Typeface;
import android.graphics.Paint.Align;
import android.os.Bundle;
import android.view.View;
public class Graphics extends Activity{
boolean drawEnabled = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//myView = new CustomView(this);
setContentView(new FallingMan(this));
}
public class FallingMan extends View {
Bitmap charStand;
float changingY;
Typeface font;
Paint textPaint = new Paint();
Rect middleRect = new Rect();
Paint colorBlue = new Paint();
public FallingMan(Context context) {
super(context);
// TODO Auto-generated constructor stub
charStand = BitmapFactory.decodeResource(getResources(), R.drawable.charstand);
changingY = 0;
font = Typeface.createFromAsset(context.getAssets(), "font.tff");
//drawEnabled = true;
}
@Override
public void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
textPaint.setARGB(50, 0, 0, 0);
textPaint.setTextAlign(Align.CENTER);
textPaint.setTextSize(50);
textPaint.setTypeface(font);
canvas.drawText("Behold, The Falling Man", canvas.getWidth()/2, 200, textPaint);
canvas.drawBitmap(charStand, canvas.getWidth()/2, changingY, null);
if(drawEnabled == true)
{
if (changingY < canvas.getHeight()) changingY += 10;
else changingY = 0;
middleRect.set(0,400,canvas.getWidth(),550);
colorBlue.setColor(Color.BLUE);
canvas.drawRect(middleRect, colorBlue);
invalidate();
}
}
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
drawEnabled = false;
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
drawEnabled = false;
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
drawEnabled = true;
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
drawEnabled = false;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
}
錯誤是“ invalidate();” 放在錯誤的括號內。 它必須在“ onDraw()”范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.