Home / / hiệu ứng chuyển trang cho android Hiệu ứng chuyển trang cho android 15/03/2022 1. Giới thiệuCó lúc nào bạn quá buồn rầu với giải pháp chuyển tiếp giữa các activity không ? Hoặc muốn việc sự chuyển tiếp giữa đó y như IOS chẳng hạn ?Bài viết này bản thân sẽ trả lời mọi bạn cách "Custom Transition Activity"2. Custom Transition ActivityCách dùng mình vẫn nói làm việc mục 32.1. Chuyến qua giữa các activity kiểu như IOSMục 2.1.1 với 2.1.2 là 2 tệp tin xml chế tạo ra hiệu ứng khi thêm một activity mớiMục 2.1.3 và 2.1.4 là 2 tệp tin xml sinh sản hiệu ứng khi back lại ( xóa 1 activity đi )Chú ý :interpolator : quan niệm đường cong tốc độ (ví dụ con đường tính, giảm tốc, vv).duration : xác minh thời gian kéo dài cuả hiệu ứngfromXDelta, fromYDelta, toXDelta, toYDelta vị trí bắt đầu và kết thúc2.1.1. File slide_in_from_right.xmlTạo tệp tin xml slide_in_from_right.xml trong thư mục anim 2.1.2. Tệp tin slide_out_to_left.xmlTạo tệp tin slide_out_to_left.xml trong folder anim trong thư mục anim 2.1.3. File slide_in_from_left.xmlTạo file slide_in_from_left.xml trong folder anim trong folder anim 2.1.4. File slide_out_to_right.xmlTạo tệp tin slide_out_to_right.xml trong thư mục anim trong thư mục anim Kết quả2.2. Hiệu ứng ẩn hiệnMình xài 2 tệp tin xml có sẵn trong apk là android.R.anim.fade_in cùng android.R.anim.fade_outfade_in.xmlfade_out.xmlalpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="Bạn đang xem: Hiệu ứng chuyển trang cho androidinterpolator/accelerate_quad" android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="android:integer/config_mediumAnimTime" />3. Giải pháp dùngChúng ta sẽ cần sử dụng function overridePendingTransition() để đổi khác hiệu ứng nối tiếp màn hình3.1. MainActivityMình sinh sản 3 nút cùng với 3 thiết lập khác nhaubuttonSlide : chế tạo ra hiệu ứng giống như IOSbuttonFade : tạo hiệu ứng ẩn hiện activity mớibuttonDefault : không thay đổi hiệu ứng mang định của điện thoại cảm ứng để so sánhChú ý : phải kê overridePendingTransition() sau startActivity() nhéMình cũng tạo intent để truyền type hiệu ứng chuyển tiếp màn hình để thời điểm back về rước hiệu ứng tương ứngpackage com.tuananh.transitionactivity;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;public class MainActivity extends AppCompatActivity implements View.OnClickListener Xem thêm: Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button_slide).setOnClickListener(this); findViewById(R.id.button_fade).setOnClickListener(this); findViewById(R.id.button_default).setOnClickListener(this); Override public void onClick(View view) Intent intent = new Intent(this, ImageActivity.class); switch (view.getId()) case R.id.button_slide: intent.putExtra("type", 1); startActivity(intent); overridePendingTransition(R.anim.slide_in_from_right, R.anim.slide_out_to_left); break; case R.id.button_fade: intent.putExtra("type", 2); startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); break; default: startActivity(intent); break; 3.2. ImageActivityNhận intent trường đoản cú MainActivity để lấy type tương ứngtype = 1 : hiệu ứng giống IOStype = 2 : cảm giác ẩn hiệntype = 0 : mang định của năng lượng điện thoạipackage com.tuananh.transitionactivity;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;public class ImageActivity extends AppCompatActivity private int mType; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_image); if (getIntent() != null) mType = getIntent().getIntExtra("type", 0); Override public void onBackPressed() super.onBackPressed(); switch (mType) case 1: overridePendingTransition(R.anim.slide_in_from_left, R.anim.slide_out_to_right); break; case 2: overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); break; default: break; ResourceResource