2012-01-10 2 views
0

는 누군가가 나에게 자식 클래스, 즉 비트 맵 무언가를 그리는 부모 클래스의 캔버스에 접근 할 방법의 예를 줄 수 :예 : Child 클래스가 Parent 내에서 Canvas에 액세스하는 방법은 무엇입니까?

BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inPurgeable = true; 
    Bitmap bitmap_explosion = BitmapFactory.decodeResource(context.getResources(),com.forwardapps.tanks.R.drawable.explosion, options); 

context.drawBitmap (bitmap_explosion, X, Y, NULL); 내가 지금 몇 시간 동안 주위를 찾고 있었어요

Explosion xplode = new Explosion(this._context, 50, 50); 

, 운 :

이것은 내가, 아이에 가지고 내가 없어 한 부모의 것입니다.

답변

1

코드에서 임의로 비트 맵을 그릴 수 없습니다. 개체를 일부 유형의 렌더링보기로 제출해야합니다. 그래서 예를 들어, 당신은 할 수 있습니다

public class Scene extends View{ 
    private List<Explosions> explosions = new ArrayList<Explosions>(); 
    @Override 
    public void onDraw(){ 
    //obviously i have a concurrency issue here.. meh 
    for (Explosions e:explosions){ 
    /// draw your explosions here 

    } 

    } 

    public void addExplosion(Explosions x){ 
     explosions.add(x) 
    } 
} 

당신이 폭발을 추가 전화

, 그것은 자기의 다시 그리기보기를 물어 postInvalidate를 호출하는 것을 잊지 말아.

그러나 가장 직접적으로 질문에 대답하려면 자녀 클래스가 Drawable을 구현 한 다음 부모 클래스 onDraw 메서드에서 자식 클래스 onDraw() 메서드에 캔버스를 전달해야합니다.

관련 문제