1. 程式人生 > >安卓開發視訊背景登入介面實現

安卓開發視訊背景登入介面實現

要實現視訊背景登入介面其實也是在登入介面上放一個ViewPager控制元件然後在用一個Fragment迴圈播放一個小視訊即可,話不多說,下面來看效果圖

這裡寫圖片描述

首先你要在資原始檔來新建一個raw檔案來存放本地視訊資源,同時你也可以播放線上視訊,原來都是差不多的,看個人的選擇
這裡寫圖片描述
下面的是佈局檔案程式碼

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_login" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.lrrigation.lrrigation.LoginActivity">
<android.support.v4.view.ViewPager android:id="@+id/video_vp"
android:layout_width="match_parent" android:layout_height="match_parent" />
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:orientation="vertical"> <RelativeLayout
android:id="@+id/re_name" style="@style/login_use" android:layout_height="40dp" android:background="@drawable/bg_border_color_black">
<ImageView android:id="@+id/login_user_icon" style="@style/login_icon" android:src="@drawable/iconmbile" /> <com.lrrigation.lrrigation.CustomClass.EditTextWithDel android:id="@+id/user_edi" style="@style/login_edi" android:layout_toEndOf="@+id/login_user_icon" android:hint="請輸入您的賬號" /> </RelativeLayout> <RelativeLayout android:id="@+id/re_pass" style="@style/login_use" android:layout_height="40dp" android:background="@drawable/bg_border_color_black"> <ImageView android:id="@+id/code_icon" style="@style/login_icon" android:src="@drawable/codeicon" /> <com.lrrigation.lrrigation.CustomClass.EditTextWithDel android:id="@+id/user_pass" style="@style/login_edi" android:layout_toEndOf="@+id/code_icon" android:hint="請輸入您的密碼" /> </RelativeLayout> <LinearLayout style="@style/login_use" android:layout_height="wrap_content"> <Button android:id="@+id/login_bty" android:text="登入" style="@style/login_bottom" /> <Button android:id="@+id/register_bty" android:text="註冊" style="@style/login_bottom" /> </LinearLayout> <com.lrrigation.lrrigation.CustomClass.MyFrontTextView android:id="@+id/tv_forgetcode" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginTop="40dp" android:text="忘記登入資訊?登陸需要幫助" android:textColor="@color/white_normal" android:textSize="13sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="70dp" android:layout_marginLeft="40dp" android:layout_marginRight="40dp" android:layout_marginTop="10dp" android:orientation="horizontal" android:weightSum="3"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center"> <ImageView android:layout_width="45dp" android:layout_height="45dp" android:src="@drawable/weibo" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center"> <ImageView android:layout_width="45dp" android:layout_height="45dp" android:src="@drawable/qq" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center"> <ImageView android:layout_width="45dp" android:layout_height="45dp" android:src="@drawable/weixin" /> </LinearLayout> </LinearLayout> </LinearLayout> </RelativeLayout>

接下來是Fragment程式碼

public class VideoFragment extends Fragment{
    private CustomVideoView customVideoView;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        customVideoView = new CustomVideoView(getContext());
        /**獲取引數,根據不同的引數播放不同的視訊**/
        Uri uri;
        uri = Uri.parse("android.resource://" + getActivity().getPackageName() + "/" + R.raw.guide);
        /**播放視訊**/
        customVideoView.playVideo(uri);
        return customVideoView;
    }

    /**
     * 記得在銷燬的時候讓播放的視訊終止
     */
    @Override
    public void onDestroy() {
        super.onDestroy();
        if (customVideoView != null) {
            customVideoView.stopPlayback();
        }
    }
}

接下來是自定義VideoView控制元件


public class CustomVideoView extends VideoView {
    public CustomVideoView(Context context) {
        super(context);
    }

    public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public CustomVideoView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension(View.MeasureSpec.getSize(widthMeasureSpec), View.MeasureSpec.getSize(heightMeasureSpec));
    }

    /**
     * 播放視訊
     *
     * @param uri 播放地址
     */
    public void playVideo(Uri uri) {
        if (uri == null) {
            throw new IllegalArgumentException("Uri can not be null");
        }
        /**設定播放路徑**/
        setVideoURI(uri);
        /**開始播放**/
        start();
        setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

            @Override
            public void onPrepared(MediaPlayer mp) {
                /**設定迴圈播放**/
                mp.setLooping(true);
            }
        });
        setOnErrorListener(new MediaPlayer.OnErrorListener() {

            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {
                return true;
            }
        });
    }
}

下面來看看LoginActivity的程式碼

public class LoginActivity extends AppCompatActivity {
private ViewPager video_vp;
    private List<Fragment> fragments;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//設定全屏
        initData();
        init_view();
    }
    private void init_view(){
        video_vp= (ViewPager) findViewById(R.id.video_vp);
        video_vp.setOffscreenPageLimit(1); //原為3
        video_vp.setAdapter(new MyPageAdapter(getSupportFragmentManager()));
    }
    /**
     * 初始化背景小視訊Fragment
     */
    private void initData() {
        fragments = new ArrayList<>();
        Fragment fragment1 = new VideoFragment();
        fragments.add(fragment1);
    }
    /**
     * viewpager介面卡
     */
    private class MyPageAdapter extends FragmentPagerAdapter {


        public  MyPageAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {

            return fragments.get(position);
        }

        @Override
        public int getCount() {

            return fragments.size();
        }
    }
}

相關推薦

開發視訊背景登入介面實現

要實現視訊背景登入介面其實也是在登入介面上放一個ViewPager控制元件然後在用一個Fragment迴圈播放一個小視訊即可,話不多說,下面來看效果圖 首先你要在資原始檔來新建一個raw檔案來存放本地視訊資源,同時你也可以播放線上視訊,原來都是差不

112G開發視訊教程資源!!!

原諒我標題黨一回,其實這篇文章要講的並不是視訊資源。 但視訊還是要貼出來的,其實是網上找的一篇帖子的分享,希望對大家能有所幫助。我又又又辭職了。 上一份工作是一份網際網路運營工作,在一家創業型公司。

Android fragment+viewpager 仿qq介面 實現點選選單切換介面+滑動切換viewpager切換介面

原始碼地址 http://download.csdn.net/detail/zhangjm_123/7902245 最近寫了一個fragment+viewpager仿qq的app,先上圖                   如圖,介面底部有四個textview,分別

開發之使用ViewDragHelper簡單實現Activity左滑返回

一、ViewDragHelper 在另一篇部落格裡介紹了ViewDragHelper,這裡就不再介紹了。 二、Activity左滑返回的簡單實現 基本思路是使用ViewDragHelper自定義一個ViewGroup(命名為Swipe

Android 開發:(三)常用控制元件以及仿《微門戶》登入介面實現

一、常用控制元件: 1、文字類控制元件 TextView 負責展示文字,非編輯 EditText 可編輯文字控制元件 2、按鈕類控制元件 Button 按鈕 ImageButton 圖片按鈕 RadioButton與RadioGroup 單

原創安手機QQ7.0登入介面動態背景視訊實現方案

qq7.0登入介面動態背景實現 qq7.0登入介面動態視訊背景實現 android動態視訊背景 android動態背景 分析qq7.0: 視訊在開啟登入介面就開始播放 了,而且期間無黑屏 而且是迴圈播放的 畫質問題這裡就不說了,這個看視訊源了。

開發-炫酷的登入介面

 最近在寫一個App,為了介面的美觀,真的花了不少的心思。今天就要分享一下自己寫的一個登入頁面,這是使用的DialogFragment框架進行改造的。自己覺得還不錯,很簡單,也很美觀。在這裡我採用的彈窗的方法進行輸入,當用戶點選密碼和使用者名稱的時候,會彈框然後提示使用者輸入,然後,當

開發學習筆記(七):仿寫騰訊QQ登入註冊介面

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_

開發筆記——多種方式實現底部選單欄(仿微信介面

關於底部選單是什麼,我想沒必要介紹了,在市場上的APP裡太常見了,這裡提供兩種方式來實現。 記得之前寫過幾篇關於底部選單實現的方法,有興趣的朋友可以看看: 今天帶來種相對更通俗易懂的寫法,不再和過去一樣去沿用TabHost了,這次我們直接用LinearLa

開發:SmartImageView簡單實現和應用

overload override ans geb actor dsta pub pac 獲取 通常從服務器端獲取的圖片是URL地址,如果簡單地通過URL地址獲取圖片? 有一個開源項目:SmartImageView,做到了這個功能,同時還有其他功能,下載不便,過於龐大 這裏

開發筆記(一)——簡單的ui介面設定以及互動設計

一、實驗題目 實驗一: 中山大學智慧健康服務平臺應用開發 實驗程式碼:傳送門:https://github.com/dick20/Android 二、實現內容 1.基本的UI介面設計 實現一個Android應用,介面呈現如圖中的效果。 要求 該介面

圓角、背景遮罩。覆蓋實現方式(適用於所有控制元件)

1.工具類直接用(已經改好) package com.etwod.yulin.t4.unit; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap;

開發呼叫相機和本地相簿選擇照片並上傳(上傳retrofit實現)

private File tempFile = new File(Environment.getExternalStorageDirectory(), getPhotoFileName()); // 使用系統當前日期加以調整作為照片的名稱 private String ge

開發---基於SQLite實現增刪查改

一、關於SQLite  SQLite 是一個軟體庫,實現了自給自足的、無伺服器的、零配置的、事務性的 SQL 資料庫引擎。SQLite 是在世界上最廣泛部署的 SQL 資料庫引擎。SQLite 原始碼不受版權限制。 SQLite的核心引擎本身不依賴第三方的軟體,在

開發-介面設計以及Tablayout

 開學之後給導師做一個安卓端的專案,之前程式碼經驗不是太多。好在Java用起來還不算太難,在入門階段而言是這樣。現記錄自己寫程式碼過程中的一些問題,相信會有很多與我有相似背景的同學,希望能對你有所幫助,也作為我自己的總結。廢話不多說,進入正題。 目錄 小結 (一

開發筆記(九)—— HttpURLConnection請求訪問Web服務,解析JSON資料,多執行緒,CardView佈局技術(bilibili的使用者視訊資訊獲取軟體)

中山大學資料科學與計算機學院本科生實驗報告 (2018年秋季學期) 一、實驗題目 WEB API 第十四周實驗目的 學會使用HttpURLConnection請求訪問Web服務 學習Android執行緒機制,學會執行緒更新UI 學會解析JSO

開發學習筆記(四):Android Stuidio無法實現隱式Intent是為什麼?

1 package com.example.lenovo.activitytest; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.view

開發學習筆記(五):史上最簡單且華麗地實現Android Stutio當中Webview控制元件https/http協議的方法

一.我們先在XML當中自定義一個webview(Second_layout.xml) 程式碼如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.an

開發客串下美工用三個gif 圖實現中的走馬燈效果

安卓開發客串下美工用三個gif 圖實現安卓中的走馬燈效果   最終效果是這個樣子的          ??????????????? 這個不像跑馬燈,到像是受驚的野馬亂蹦 啊,呵呵,在本地快

開發實現雙方比賽計時器

安卓開發,實現雙方比賽計時器: 效果圖:           TimerMainActivity.java package com.example.fujianping.httpreque