Как подогнать фоновое изображение к экрану устройства Android

#java #android #image #background

#java #Android #изображение #фон

Вопрос:

Я использую Eclipse для написания приложения для Android. Я хочу, чтобы мое приложение отображало фоновое изображение, которое растягивается до размера экрана.

Я написал следующий код, но в эмуляторе он сразу же вышел из приложения, когда я его запустил. Кто-нибудь, пожалуйста, может помочь мне разобраться в проблеме…

Вот мой код…

 public class Roller extends Activity {

    Display display = getWindowManager().getDefaultDisplay(); 
    int dwidth = display.getWidth();
    int dheight = display.getHeight();
    Bitmap background1 = BitmapFactory.decodeResource(getResources(),R.drawable.sunnybackground);
    Bitmap BSunny = Bitmap.createScaledBitmap(background1,dwidth,dheight,true);

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(new Panel(this));
    }

    class Panel extends View {
        public Panel(Context context) {
            super(context);
        }

        public void onDraw(Canvas canvas) {
            canvas.drawBitmap(BSunny, 0, 0, null);
        }
    }
}
  

Комментарии:

1. Ошибка, которая появляется при запуске в эмуляторе?

2. Приложение неожиданно остановилось, пожалуйста, повторите попытку

Ответ №1:

Почему бы просто не сделать что-то вроде этого:

 @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    ImageView iv = new ImageView(this, null);
    iv.setBackgroundResource(R.drawable.sunnybackground);
    setContentView(iv);
}
  

Комментарии:

1. Спасибо, я пытался, но все еще без cigar, он по-прежнему выскакивает с ошибкой

Ответ №2:

Почему бы вам не установить фоновое изображение в XML-файле layout? Обязательно ли устанавливать его программно во время выполнения?

Ответ №3:

Я думаю, вы поступаете, как показано ниже (кажется, что вы не можете получить информацию о отображении, пока не будет создано действие)

 public class Roller extends Activity {

Bitmap BSunny;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    Display display = getWindowManager().getDefaultDisplay(); 
    int dwidth = display.getWidth();
    int dheight = display.getHeight();
    Bitmap background1 = BitmapFactory.decodeResource(getResources(),R.drawable.sunnybackground);
    BSunny = Bitmap.createScaledBitmap(background1,dwidth,dheight,true);

    setContentView(new Panel(this));
}

class Panel extends View {
    public Panel(Context context) {
        super(context);
    }

    public void onDraw(Canvas canvas) {
        canvas.drawBitmap(BSunny, 0, 0, null);
    }
}

}