Tôi đã thực hiện việc này chỉ bằng một bố cục xml. Tôi chỉ cần đặt thêm một RelativeLayout trong đó đại diện cho màn hình giới thiệu của tôi sau đó tôi sử dụng một fadeOut Animation trên nó và sau đó gọi .setVisibility (View.GONE).
Đây là một phần của tập tin bố trí main.xml tôi
<RelativeLayout
android:id="@+id/introLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
>
<ImageView
android:id="@+id/logoImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@drawable/logo">
</ImageView>
</RelativeLayout>
Sau đó bên trong hoạt động của tôi, tôi có điều này:
introLayout = (RelativeLayout) findViewById(R.id.introLayout);
Animation fadeOutAnim = AnimationUtils.loadAnimation(MyActivity.this, R.anim.fadeout);
introLayout.startAnimation(fadeOutAnim);
introLayout.setVisibility(View.GONE);
Bạn có thể làm cho hoạt động này sau 3 giây bằng cách đặt startAnimation() , và setVisibility bên trong của một runnable và sử dụng postDelayed() như markus đã đề cập. Hãy xem xét làm một số công việc trong khi bố trí giới thiệu này là trên màn hình mặc dù, do đó, nó không chỉ là một sự chậm trễ 3 giây cho người dùng. Có lẽ kiểm tra xem phiên bản đang chạy của ứng dụng có phải là phiên bản hiện tại hay không.
CHỈNH SỬA: Bạn cần phải thêm tệp fadout.xml vào /res/anim/
(tạo thư mục hoạt ảnh nếu nó không tồn tại). Đây là một ví dụ.
fadeout.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="700"
android:fillAfter="true"/>
Đây là giải pháp thông minh! – Sana
tại sao '.anim.' trong' R.anim.' lại xuất hiện? Tôi nhận được một 'hoạt hình không thể được giải quyết hoặc không phải là một lĩnh vực' – Alex
@ w0rldart bạn cần phải thêm fadeout.xml vào thư mục '/ res/anim /', xem chỉnh sửa của tôi. – FoamyGuy