2012-10-22 2 views
1

저는 첫 번째 Android 프로젝트 인 라이브 배경 화면에서 작업하고 있습니다. 나는 내 프로젝트에서 화면에 항상 날아갈 이미지가 필요하다. 이미지는 하단에서 상단으로 날아 가야하지만 항상 날아 가야 배경이 비어있게됩니다. 이것은 내 코드의 일부이지만, 그 이상의 것을 필요로한다는 것을 알고 있습니다. invalidate보기로 그리기 메서드 호출의 끝에서.png 이미지를 만드는 방법?

void draw(Canvas c) { 
    c.save(); 
    c.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.wallpaper1), 0, 0, null); 
    double tmp = Math.sin(fiX * Math.PI/180F) * 20; 
    Bitmap bm = BitmapFactory.decodeResource(getBaseContext().getResources(), R.drawable.heart_s); 
    c.drawBitmap(bm, 100 + (int) tmp, posY, paint); 

    double tmp1 = Math.sin(fiX * Math.PI/180F) * 20; 
    Bitmap bm1 = BitmapFactory.decodeResource(getBaseContext().getResources(), R.drawable.heart1); 
    c.drawBitmap(bm1, 300 + (int) tmp1, posY, paint); 

    double tmp2 = Math.sin(fiX * Math.PI/180F) * 20; 
    Bitmap bm2 = BitmapFactory.decodeResource(getBaseContext().getResources(), R.drawable.heart3); 
    c.drawBitmap(bm2, 200 + (int) tmp2, posY, paint) 

    posY = posY -direction; 
    fiX = fiX + 10; 

    if(posY < 0) { 
     //posY = getResources().getDisplayMetrics().heightPixels; 
     direction = 5;     
    } 

    if(posY > getResources().getDisplayMetrics().heightPixels) { 
     direction = 5;          
    } 
    if(fiX > 180) { 
      fiX = 0; 
    } 
    c.restore(); 
} 
+1

무엇이 문제입니까? –

+0

화면 아래쪽에서 위쪽으로뿐만 아니라 항상 내 이미지가 날아갈 필요가 있습니다. –

+0

애니메이션에 대한 아이디어를 좀 더 잘 설명해야합니다. _ "이미지는 하단에서 상단으로 날아 가야하지만 항상 날아갈 필요가 있습니다."_ 그래서 이미지가 화면 상단에 도달하면 실제로 어떤 일이 발생해야합니까? – Less

답변

2

. 이것은 당신의 끌기에 반복을 시작할 것이다.

그리기 시작 부분에 애니메이션 논리를 추가하고 일부 drawModel을 만들고이 논리를 사용하여 애니메이션 논리를 업데이트하십시오. 그런 다음 모델에 따라 이미지의 위치를 ​​변경하십시오.

void draw(Canvas canvas) { 
    handleUpdateModelEvent(); 
    onDraw(); 
    invalidate(); 
} 

private void handleUpdateModelEvent(){ 

} 

private void onDraw(){ 
    // in MVC this method should be called from model change event 
} 
+0

좀 더 구체적인 내용을 알려주시겠습니까? 미안하지만, 나는 초급자 야. –

+0

@VkaIv 지금 확인해주세요. 도움이 되었기를 바랍니다. –

+0

@VkaIv posx를 변경하지 마십시오. –