2011-08-02 43 views
14

Tôi muốn tạo màn hình giật gân trong ứng dụng của mình, vì tôi cần biết cách hiển thị hình ảnh ở chế độ toàn màn hình. Điều này có thể làm cho tôi bằng mã XML hoặc Java không? Và làm thế nào? Hiện tại tôi chỉ cần thực hiện điều này:[Splash Screen] Làm cách nào để hiển thị hình ảnh ở chế độ toàn màn hình?

public class SplashScreen extends Activity { 

    private static final int STOPSPLASH = 0; 

    private static final long SPLASHTIME = 5000; 



    private Handler splashHandler = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
    switch (msg.what) { 
    case STOPSPLASH: 
    //remove SplashScreen from view 
    Intent intent = new Intent(SplashScreen.this, jetpack.class); 
    startActivity(intent); 
    break; 
    } 
    super.handleMessage(msg); 
    } 
    }; 



    @Override 

    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.splash_screen); 
    Message msg = new Message(); 
    msg.what = STOPSPLASH; 
    splashHandler.sendMessageDelayed(msg, SPLASHTIME); 
    } 
    } 

Làm cách nào để có thể sử dụng splash_screen.xml này? Cảm ơn sự giúp đỡ của bạn.

Trả lời

26
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" > 
<ImageView android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:src="@drawable/image" /> 
</LinearLayout> 

và trong các mã thêm

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 

trước setContentView (R.layout.splash_screen);

+0

Câu hỏi hay, nhưng tôi có một vấn đề khác, khi tôi nhấn nút quay lại i có màn hình giật gân hiển thị một lần khác, tôi sẽ mở một chủ đề khác. Cảm ơn :). – androniennn

+3

bạn phải gọi 'kết thúc();' và hoạt động sẽ không được hiển thị khi bạn nhấn nút quay lại. –

+0

cũng sẽ tốt nếu bạn có thể làm cho màn hình giật gân này chạy trên một chuỗi. –

1

Nếu R.layout.splash_screen bao gồm hình ảnh có chiều cao và chiều rộng được đặt thành fill_parent hoặc match_parent (tùy thuộc vào phiên bản). Nó sẽ lấp đầy màn hình

20

Cách tốt nhất để hiển thị một hoạt động màn hình đầy đủ là bằng cách đặt dòng này trong biểu hiện của bạn dưới thẻ hoạt động

android: theme = "@ android: phong cách/Theme.Light.NoTitleBar.Fullscreen"

Bạn có thể sử dụng các theme khác cũng

Theme.Black.NoTitleBar.Fullscreen
Theme.NoTitleBar.Fullscreen

<activity 
     android:name="com.example.SplashActivity" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

Đối mới nhất Lollipop Api và trên

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light"> 
<item name="windowNoTitle">true</item> 
<item name="windowActionBar">false</item> 
<item name="android:windowFullscreen">true</item> 
<item name="android:windowContentOverlay">@null</item> 
</style> 

Xác định chủ đề này cho các hoạt động giật gân và cung cấp cho nó trong manifest

android: theme = "@ style/Theme.AppCompat .Light.NoActionBar.FullScreen "

+0

Điều này chỉ làm cho tiêu đề của tôi "Theme.Light.NoTitleBar.Fullscreen" Làm thế nào tôi có thể sửa lỗi này? –

+0

Tôi gặp lỗi: "Bạn cần sử dụng chủ đề Theme.AppCompat (hoặc hậu duệ) với hoạt động này" – Reza

+0

Đã chỉnh sửa câu trả lời cho các phiên bản api mới – Ravi

Các vấn đề liên quan