2013-12-20 6 views
0

Я пытаюсь нарисовать фоновое изображение в приложении для Android. Однако, когда я пытаюсь сделать это как растровое изображение, он говорит, что файл не найден. Можете ли вы использовать изображения из пользовательских папок, созданных в вашем каталоге проектов?Загрузка и рисование изображений в android из папки

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); 
Смежные вопросы