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