美文网首页AndroidAndroid
Android登陆背景动画效果

Android登陆背景动画效果

作者: 遇见编程 | 来源:发表于2021-04-07 11:17 被阅读0次
    1ce8652c-a2b6-43da-9b2b-03dd20e454fb.gif

    废话少说,直接上代码:

    自定义的CustomVideoView(VideoView):

    import android.content.Context;
    import android.media.MediaPlayer;
    import android.util.AttributeSet;
    import android.view.KeyEvent;
    import android.widget.VideoView;
    
    public class CustomVideoView extends VideoView {
    
        public CustomVideoView(Context context) {
            super(context);
        }
    
        public CustomVideoView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public CustomVideoView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
    
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            //我们重新计算高度
            int width = getDefaultSize(0, widthMeasureSpec);
            int height = getDefaultSize(0, heightMeasureSpec);
            setMeasuredDimension(width, height);
        }
    
        @Override
        public void setOnPreparedListener(MediaPlayer.OnPreparedListener l) {
            super.setOnPreparedListener(l);
        }
    
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            return super.onKeyDown(keyCode, event);
        }
    }
    

    LoginActivity:

    public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
    
        private CustomVideoView videoView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
            initView();
        }
    
        /**
         * 初始化
         */
        private void initView() {
            Button btn_enter = findViewById(R.id.btn_enter);
            btn_enter.setOnClickListener(this);
    
            videoView = findViewById(R.id.videoView);
            videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.sport));
    
            //播放
            videoView.start();
            //循环播放
            videoView.setOnCompletionListener(mediaPlayer -> videoView.start());
    
        }
    
        @Override
        public void onClick(View view) {
            if (view.getId() == R.id.btn_enter) {
                Toast.makeText(this, "登录成功了", Toast.LENGTH_SHORT).show();
            }
        }
    }
    

    activity_login.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:fitsSystemWindows="true"
        android:layout_height="match_parent">
    
        <com.hjy.mygradle.utils.CustomVideoView
            android:id="@+id/videoView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="top"
            android:orientation="vertical">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="38dp"
                android:layout_marginTop="70dp"
                android:layout_marginRight="38dp"
                android:orientation="vertical">
    
                <EditText
                    android:id="@+id/etPhone"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_gravity="center_vertical"
                    android:background="@null"
                    android:digits="0123456789"
                    android:gravity="center_vertical"
                    android:hint="请输入手机号"
                    android:inputType="number"
                    android:maxLength="11"
                    android:maxLines="1"
                    android:paddingStart="5dp"
                    android:textColor="@android:color/white"
                    android:textColorHint="@android:color/white"
                    android:textSize="18sp"
                    tools:ignore="RtlSymmetry,TextFields" />
    
                <View
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="@color/horizontal_line" />
    
                <EditText
                    android:id="@+id/et_pwd"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginTop="20dp"
                    android:background="@null"
                    android:gravity="center_vertical"
                    android:hint="@string/etPassWord"
                    android:inputType="textPassword"
                    android:maxLength="11"
                    android:maxLines="1"
                    android:paddingStart="5dp"
                    android:textColor="@android:color/white"
                    android:textColorHint="@android:color/white"
                    android:textSize="18sp"
                    tools:ignore="RtlSymmetry" />
    
                <View
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:background="@color/horizontal_line" />
    
            </LinearLayout>
    
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="23dp"
                android:layout_marginRight="23dp"
                android:orientation="horizontal">
    
                <TextView
                    android:id="@+id/tv_register"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="15dp"
                    android:text="快速注册"
                    android:textColor="@color/greens" />
    
                <TextView
                    android:id="@+id/tv_find_pwd"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentEnd="true"
                    android:gravity="right"
                    android:padding="15dp"
                    android:text="忘记密码?"
                    android:textColor="@color/greens" />
    
            </RelativeLayout>
    
            <Button
                android:id="@+id/btn_enter"
                style="?android:attr/borderlessButtonStyle"
                android:layout_width="match_parent"
                android:layout_height="45dp"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="30dp"
                android:layout_marginTop="20dp"
                android:layout_marginRight="30dp"
                android:background="@drawable/shape_green_content_normal"
                android:text="登录"
                android:textColor="@color/white"
                android:textSize="18dp" />
    
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:orientation="vertical"
            android:paddingBottom="30dp">
    
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="90dp"
                android:gravity="center"
                android:text="使用第三方登录"
                android:textColor="@color/white"
                android:textSize="16dp"
                android:visibility="visible" />
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:orientation="horizontal">
    
    
                <ImageView
                    android:id="@+id/iv_wechat"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:padding="10dp"
                    android:src="@drawable/qq_sel" />
    
                <ImageView
                    android:id="@+id/iv_qq"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="20dp"
                    android:layout_marginTop="10dp"
                    android:padding="10dp"
                    android:src="@drawable/wechat_sel" />
    
            </LinearLayout>
        </LinearLayout>
    </FrameLayout>
    

    在res下创建一个raw文件夹,把准备好的视频(mp4文件)拷贝到该文件夹下面。

    相关文章

      网友评论

        本文标题:Android登陆背景动画效果

        本文链接:https://www.haomeiwen.com/subject/xfoykltx.html