2014-11-30 4 views
-1

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@Drawable/splash_1"> 
</LinearLayout> 

public class Splash extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 
     int myTimer = 10000; //Muuttuja "myTimer" määrittää kauan splash näkyy 
      new Handler().postDelayed(new Runnable(){ 
       @Override 
       public void run(){ 
        //Muuttuja "i" käskee avaamaan MainActivity 
        Intent i = new Intent(Splash.this, MainActivity.class); 
        startActivity(i); 
        finish(); 
       } 
      }, myTimer); 
    }} 

Так что я сделал редактировать мой макет немного битового, но до сих пор не работает

+3

Не тратьте 10s времени ваших пользователей каждый раз запустить приложение. Сделайте это один раз, и они будут раздражены. Сделайте это дважды, и они будут удалены. – 323go

+0

Я считаю, что 10 лет для тестирования только, но я согласен: экран заставки злой, не используйте его. Ваши пользователи хотят быстро добраться до бизнеса, чтобы не ждать заставки. –

ответ

1

Избегайте использования конкретных размеров по ширине и высоте. Случается, что ваше устройство имеет меньший экран, чем то, что вы указали, и система «толкает» изображение на следующей строке (где в этом случае вычисляется высота линии в качестве высоты изображения).

Установить как ширина и высота изображения в match_parent и добавить

android:scaleType="centerCrop" 

или

android:scaleType="centerInside" 

в зависимости от которого вы хотите.

Также удалите атрибут orientation от ImageView, это имеет смысл только на элементе LinearLayout.

Примечание: Ваш MainActivity может запускаться через 10 секунд, даже если вы нажмете кнопку «Назад» на заставке. Существует исправление этого - смотрите здесь: Kill intent on splash screen

EDIT - Предложил расположение:

<ImageView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:scaleType="centerCrop" 
    android:src="@drawable/splash_1"/> 
+0

Спасибо, что внесли свой вклад, но я все еще не могу получить изображение на моем Galaxy S4, даже с этими новыми строками. –

+0

Можете ли вы изменить весь макет activity_splash в свой вопрос? –

Смежные вопросы