android app启动动画的实现

编程入门 行业动态 更新时间:2024-10-05 07:22:16

android app启动<a href=https://www.elefans.com/category/jswz/34/1769013.html style=动画的实现"/>

android app启动动画的实现

android app启动动画的实现:先出现app logo再出现注册登录界面

先看看效果图

下面介绍具体实现步骤

1 MainActivity代码实现:主要是动画的切换

public class MainActivity extends AppCompatActivity {ImageView logoView;View loginFragment;View registerFragment;Button registerButton;Button backButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findView();startAnimator();}private void findView() {logoView = findViewById(R.id.logo_imageView);loginFragment = findViewById(R.id.loginFragment);registerFragment = findViewById(R.id.registerFragment);registerButton = findViewById(R.id.registerButton);registerButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {loginToRegisterAnimator();}});backButton = findViewById(R.id.back_button);backButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {registerToLoginAnimator();}});}private void startAnimator() {ObjectAnimator animator1 = ObjectAnimator.ofFloat(logoView, "alpha", 1f, 0f);ObjectAnimator animator2 = ObjectAnimator.ofFloat(loginFragment, "alpha", 0f, 1f);AnimatorSet animSet =new AnimatorSet();animSet.play(animator2).after(animator1);animSet.setDuration(1500);animSet.start();}private void loginToRegisterAnimator() {registerFragment.setVisibility(View.VISIBLE);loginFragment.setVisibility(View.GONE);ObjectAnimator animator3 = ObjectAnimator.ofFloat(loginFragment, "alpha", 1f, 0f);ObjectAnimator animator4 = ObjectAnimator.ofFloat(registerFragment, "alpha", 0f, 1f);AnimatorSet animSet =new AnimatorSet();animSet.play(animator4).after(animator3);animSet.setDuration(10);animSet.start();}private void registerToLoginAnimator() {registerFragment.setVisibility(View.GONE);loginFragment.setVisibility(View.VISIBLE);ObjectAnimator animator3 = ObjectAnimator.ofFloat(loginFragment, "alpha", 0f, 1f);ObjectAnimator animator4 = ObjectAnimator.ofFloat(registerFragment, "alpha", 1f, 0f);AnimatorSet animSet =new AnimatorSet();animSet.play(animator3).after(animator4);animSet.setDuration(10);animSet.start();}
}

2 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android=""xmlns:app=""xmlns:tools=""android:layout_width="match_parent"tools:context=".MainActivity"android:layout_height="match_parent"><View android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/black"android:alpha="1" android:id="@+id/ScrollListModal" tools:layout_editor_absoluteY="0dp"tools:layout_editor_absoluteX="0dp"/><ImageViewandroid:layout_width="0dp"android:layout_height="0dp" app:srcCompat="@drawable/ianime_nobg"android:id="@+id/logo_imageView"app:layout_constraintTop_toTopOf="@+id/ScrollListModal"app:layout_constraintRight_toRightOf="@id/ScrollListModal"app:layout_constraintLeft_toLeftOf="@id/ScrollListModal"app:layout_constraintBottom_toBottomOf="@id/ScrollListModal"/><fragmentandroid:id="@+id/loginFragment"android:name="com.example.startanimation.LoginFragment"android:layout_width="match_parent"android:layout_height="match_parent"tools:layout="@layout/fragment_login" /><fragment android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/registerFragment"android:name="com.example.startanimation.RegisterFragment"tools:layout="@layout/fragment_register"/></android.support.constraint.ConstraintLayout>

3 LoginFragment类

public class LoginFragment extends Fragment {private View view;public LoginFragment() {// Required empty public constructor}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentview= inflater.inflate(R.layout.fragment_login, container, false);return view;}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);}
}

4 fragment_login.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android=""xmlns:app="" xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"android:alpha="0"tools:context="LoginFragment" android:id="@+id/login_fragment"><TextViewandroid:text="登陆"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="48dp"android:textColor="@color/WhiteText"android:id="@+id/textView" app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="48dp" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="45dp"/><TextViewandroid:text="世界と色と共に"android:textSize="16dp"android:textColor="@color/WhiteText"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/textView10" android:layout_marginTop="4dp"app:layout_constraintTop_toBottomOf="@+id/textView" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="47dp"/><EditTextandroid:hint="输入用户名"android:background="@drawable/edit_background"android:layout_width="0dp"android:layout_height="40dp"android:textColorHint="@color/WhiteText"android:textSize="16dp"android:paddingLeft="12dp"android:singleLine="true"android:id="@+id/account" android:layout_marginTop="80dp"app:layout_constraintTop_toBottomOf="@+id/textView10" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="44dp" app:layout_constraintEnd_toEndOf="parent"android:layout_marginEnd="44dp"/><EditTextandroid:background="@drawable/edit_background"android:hint="输入密码"android:textColorHint="@color/WhiteText"android:layout_width="0dp"android:paddingLeft="12dp"android:layout_height="40dp"android:textSize="16dp"android:singleLine="true"android:id="@+id/password" android:layout_marginTop="24dp"app:layout_constraintTop_toBottomOf="@+id/account" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="44dp" app:layout_constraintEnd_toEndOf="parent"android:layout_marginEnd="44dp"/><ImageViewandroid:src="@drawable/arrow_right_white"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/loginArrowRight" android:layout_marginTop="16dp"app:layout_constraintTop_toBottomOf="@+id/password" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="16dp" app:layout_constraintEnd_toEndOf="parent"android:layout_marginEnd="16dp"/><Buttonandroid:background="@drawable/button_shape"android:text="新用户注册"android:textColor="@drawable/login_button_font_color"android:textSize="24dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/registerButton" android:layout_marginTop="8dp"app:layout_constraintTop_toBottomOf="@+id/loginArrowRight" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="16dp" app:layout_constraintEnd_toEndOf="parent"android:layout_marginEnd="16dp"/><Buttonandroid:text="访客使用"android:background="@drawable/button_shape"android:textSize="24dp"android:textColor="@drawable/login_button_font_color"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/button2" android:layout_marginTop="16dp"app:layout_constraintTop_toBottomOf="@+id/registerButton" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="16dp" app:layout_constraintEnd_toEndOf="parent"android:layout_marginEnd="16dp"/>
</android.support.constraint.ConstraintLayout>

5 RegisterFragment类

public class RegisterFragment extends Fragment {public RegisterFragment() {// Required empty public constructor}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentreturn inflater.inflate(R.layout.fragment_register, container, false);}
}

6 fragment_register.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android=""xmlns:app=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"android:alpha="0"android:visibility="gone"tools:context=".RegisterFragment" android:id="@+id/register_fragment"><TextViewandroid:text="注册"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="48dp"android:textColor="@color/WhiteText"android:id="@+id/textView2" app:layout_constraintTop_toTopOf="parent"android:layout_marginTop="48dp" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="45dp"/><TextViewandroid:text="君と僕は一緒に"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="16dp"android:textColor="@color/WhiteText"android:id="@+id/textView3" android:layout_marginTop="4dp"app:layout_constraintTop_toBottomOf="@+id/textView2" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="47dp"/><EditTextandroid:background="@drawable/edit_background"android:hint="手机号/邮箱"android:textColorHint="@color/WhiteText"android:singleLine="true"android:textSize="16dp"android:paddingLeft="12dp"android:layout_width="0dp"android:layout_height="40dp"android:id="@+id/reg_account"android:layout_marginTop="100dp" app:layout_constraintTop_toBottomOf="@+id/textView3"app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="44dp"app:layout_constraintStart_toStartOf="parent" android:layout_marginStart="44dp"/><EditTextandroid:background="@drawable/edit_background"android:hint="输入密码"android:textColorHint="@color/WhiteText"android:singleLine="true"android:textSize="16dp"android:paddingLeft="12dp"android:layout_width="0dp"android:layout_height="40dp"android:id="@+id/reg_password" android:layout_marginTop="32dp"app:layout_constraintTop_toBottomOf="@+id/reg_account" app:layout_constraintEnd_toEndOf="parent"android:layout_marginEnd="44dp" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="44dp"/><EditTextandroid:background="@drawable/edit_background"android:hint="重复输入密码"android:textColorHint="@color/WhiteText"android:singleLine="true"android:textSize="16dp"android:paddingLeft="12dp"android:layout_width="0dp"android:layout_height="40dp"android:id="@+id/reg_passwordAgain" android:layout_marginTop="32dp"app:layout_constraintTop_toBottomOf="@+id/reg_password" app:layout_constraintEnd_toEndOf="parent"android:layout_marginEnd="44dp" app:layout_constraintStart_toStartOf="parent"android:layout_marginStart="44dp"/><Buttonandroid:background="@drawable/button_shape"android:textSize="24dp"android:text="返回"android:textColor="@color/WhiteText"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/back_button" android:layout_marginTop="48dp"app:layout_constraintTop_toBottomOf="@+id/reg_passwordAgain" app:layout_constraintStart_toStartOf="parent"app:layout_constraintHorizontal_bias="0.5" app:layout_constraintEnd_toStartOf="@+id/start_register"/><Buttonandroid:background="@drawable/button_shape"android:textSize="24dp"android:text="注册"android:textColor="@color/WhiteText"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/start_register"app:layout_constraintTop_toTopOf="@+id/back_button" app:layout_constraintStart_toEndOf="@+id/back_button"app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5"/>
</android.support.constraint.ConstraintLayout>

这是三个主要的界面类,下面7、8、9是在drawable文件夹下定义的布局定义文件

7 button_shape.xml

<?xml version="1.0" encoding="utf-8" ?><!--shape用于定义形状,有四种形状(矩形rectangle| 椭圆oval | 直线line | 圆形ring)--><shape xmlns:android=""android:shape="rectangle"><!--solid用于设置填充形状的颜色-->
<!--    <solid android:color="#f06f3c" />--><!--corners用于创建圆角(只用于形状是矩形)-->
<corners android:radius="3dp"/><paddingandroid:left="10dp"android:right="10dp"/><!--    设置边框线的宽度和颜色-->
<strokeandroid:width="0dp"android:color="#ffffff"/></shape>

8 edit_background.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-listxmlns:android=""><item><shapexmlns:android=""android:shape="rectangle"><cornersandroid:radius="3dp"/><strokeandroid:width="2dp"android:color="#ffffff"/></shape></item></layer-list>

9 login_button_font_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android=""><item android:state_pressed="true" android:color="@color/GrayText"/><item android:state_focused="true" android:color="@color/GrayText"/><item android:color="@color/WhiteText"/></selector>

10 values文件下的colors.xml多定义了三种颜色

<?xml version="1.0" encoding="utf-8"?>
<resources><color name="colorPrimary">#008577</color><color name="colorPrimaryDark">#00574B</color><color name="colorAccent">#D81B60</color><color name="WhiteText">#ffffff</color><color name="GrayText">#A2A2A2</color><color name="black">#000000</color>
</resources>

更多推荐

android app启动动画的实现

本文发布于:2024-02-28 05:00:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768172.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:动画   android   app

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!