2012-02-29 3 views
0

개체를 아래로 움직여야하지만이 코드는 누군가가 틀린 말을 할 수있게합니까?비트 맵이 작동하지 않습니다.

첫 번째 코드

뷰 클래스는 내가 객체 코드를 표시했다.

import android.app.Activity; 
import android.os.Bundle; 

public class Game extends Activity { 
    Play View; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     View = new Play(this); 
     setContentView(View); 
    } 
} 

Secound 코드는

이 코드가 객체가 이동해야했다입니다.

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.view.View; 


public class Play extends View { 

    int Y=0; 
    Bitmap object; 

    public Play(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub   object = BitmapFactory.decodeResource(getResources(), R.drawable.brid); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     // TODO Auto-generated method stub 
     super.onDraw(canvas); 
     canvas.drawColor(Color.GRAY); 
     canvas.drawBitmap(object, (canvas.getWidth()/2), Y, null); 
     if (Y < canvas.getHeight()){ 
      Y +=10; 
     }else { 
      Y = 0; 
     } 
    }  

} 

답변

1

우선 Play 개체는 Android 클래스를 의미하므로 "보기"로 호출하지 마십시오. "playView"와 같은 이름을 지정하십시오 ...

onDraw()이 완료되면 View은 자체적으로 다시 그려지지 않습니다. 그렇게하려면 onDraw() 끝에 invalidate()으로 전화해야합니다.

그림을 매끄럽게하려면이 그림을 Thread에 넣고 도면을 실행하는 데 게임 루프를 만드십시오. 을 보면 View에서 Canvas으로 바로 그려 보는 것보다 빠릅니다.

+0

Ok thx 진짜 도움 :) – user1241123

0
나는 당신이 일을 기대하는지 확실하지 않다

하지만보기가 뭔가 때까지 다시 호출되지 않습니다 렌더링되면 View.onDraw()가 자동으로 당신을 위해 여러 번 호출되지 않습니다는 다시 그리기를 요청 보통 사용 View.invalidate()

Animation을 사용하여 원하는 것을 구현해야합니다.

+0

개체가 화면을 위아래로 이동합니다. – user1241123

관련 문제