2013-12-20 2 views
0

내 안드로이드 앱에서 배경 이미지를 그려야합니다. 그러나 비트 맵으로 그리려고하면 파일이 발견되지 않는다고 말합니다. 프로젝트 디렉토리에서 생성 된 사용자 정의 폴더의 이미지를 사용할 수 있습니까?폴더에서 안드로이드로 이미지로드 및 드로잉

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.Canvas; 
import android.util.Log; 
import android.view.MotionEvent; 
import android.view.SurfaceHolder; 
import android.view.SurfaceView; 

public class MainGamePanel extends SurfaceView implements SurfaceHolder.Callback { 
    Bitmap BackgroundImage; 

    private static final String TAG = MainGamePanel.class.getSimpleName(); 

    private MainThread thread; 

    public MainGamePanel(Context context) { 
     super(context); 

     // adding the callback (this) to the surface holder to intercept events 
     getHolder().addCallback(this); 

     // creating game thread 
     thread = new MainThread(getHolder(), this); 

     // make the GmaePanel focusable so it can handle events 
     setFocusable(true); 
    } 

    @Override 
    public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void surfaceCreated(SurfaceHolder arg0) { 
     thread.setRunning(true); 
     thread.start(); 

     Background b1 = new Background(); 

      BackgroundImage = b1.loadBackgroundImage(); 
    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder arg0) { 
     Log.d(TAG, "Surface is being destroyed"); 
     boolean retry = true; 
     while(retry){ 
      try{ 
       thread.join(); 
       retry = false; 
      } catch (InterruptedException e) { 
       // try again to shutdown thread 
      } 

     } 
     Log.d(TAG, "Thread was shut down cleanly"); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event){ 
     return super.onTouchEvent(event); 
    } 

    @Override 
    protected void onDraw(Canvas canvas){ 
     canvas.drawBitmap(BackgroundImage, 0, 0, null); 


    } 



} 

------ 배경 클래스 ------

import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 

public class Background { 
    private String imageLoc; 

    public Background(){ 


    } 

    public String getImageLoc() { 
     return imageLoc; 
    } 

    public void setImageLoc(String imageLoc) { 
     this.imageLoc = imageLoc; 
    } 

    public Bitmap loadBackgroundImage(){ 
     Bitmap background = BitmapFactory.decodeFile("/Users/Justin/Documents/Project_WinterGalaxy/AndroidGalaxy/images/Background.png"); 

     return background; 
    } 



} 

답변

1

코드에서 이미지를 표시하는 방법은 다음과 같습니다로드 한 후 관련 drawable 폴더에 넣어 이렇게 :

Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.Background);