Как разместить фоновое изображение на экране устройства Android - PullRequest
0 голосов
/ 29 декабря 2010

Я использую 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);
        }
    }
}

Ответы [ 3 ]

0 голосов
/ 10 октября 2012

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

0 голосов
/ 07 февраля 2013

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

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);
    }
}

}
0 голосов
/ 29 декабря 2010

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

@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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...