android 仿QQ动态背景、视频背景的示例代码

android 仿QQ动态背景、视频背景的示例代码,第1张

概述本文介绍了android仿QQ动态背景、视频背景的示例代码,分享给大家,具体如下:

本文介绍了androID 仿QQ动态背景、视频背景的示例代码,分享给大家,具体如下:

效果如下:

 

如上图类似效果图:

1, 自定义视频类 继承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);  }}

MainActivity 中:

public class MainActivity extends AppCompatActivity implements VIEw.OnClickListener {    private CustomVIDeoVIEw vIDeovIEw;    private button  btn_enter;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      // requestwindowFeature(Window.FEATURE_NO_Title);      setContentVIEw(R.layout.activity_main);      initVIEw();    }    /**     * 初始化     */    private voID initVIEw() {      btn_enter = (button) findVIEwByID(R.ID.btn_enter);      btn_enter.setonClickListener(this);      vIDeovIEw = (CustomVIDeoVIEw) findVIEwByID(R.ID.vIDeovIEw);      vIDeovIEw.setVIDeoURI(Uri.parse("androID.resource://"+getPackagename()+"/"+R.raw.shipin2));      //播放      vIDeovIEw.start();      //循环播放      vIDeovIEw.setonCompletionListener(new MediaPlayer.OnCompletionListener() {        @OverrIDe        public voID onCompletion(MediaPlayer mediaPlayer) {          vIDeovIEw.start();          mediaPlayer.setonInfoListener(new MediaPlayer.OnInfoListener() {            @OverrIDe            public boolean onInfo(MediaPlayer mp,int what,int extra) {              return false;            }          });        }      });    }    @OverrIDe    public voID onClick(VIEw vIEw) {      switch (vIEw.getID()){        case R.ID.btn_enter:          Toast.makeText(this,"登录成功了",Toast.LENGTH_SHORT).show();          break;      }    }    //返回重启加载    @OverrIDe    protected voID onRestart() {      super.onRestart();      initVIEw();    }    //防止锁屏或者切出的时候,音乐在播放    @OverrIDe    protected voID onStop() {      super.onStop();      vIDeovIEw.stopPlayback();    }  }

读取视频的问题: 把视频放到和res/raw文件夹里面了

布局文件中:

  <?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:layout_height="match_parent"    >     <!--CustomVIDeoVIEw 自定义视频类的位置-->    <application1.applicationlong.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_marginRight="38dp"        androID:layout_margintop="70dp"        androID:orIEntation="vertical">        <EditText          androID:ID="@+ID/et_phone"          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:paddingleft="5dp"          androID:textcolor="@androID:color/white"          androID:textcolorHint="@androID:color/white"          androID:textSize="18sp"/>        <VIEw          androID:layout_wIDth="match_parent"          androID:layout_height="1dp"          androID:layout_alignParentBottom="true"          androID:background="@color/black"/>        <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="请输入密码"          androID:inputType="textPassword"          androID:maxLength="11"          androID:maxlines="1"          androID:paddingleft="5dp"          androID:textcolor="@androID:color/white"          androID:textcolorHint="@androID:color/white"          androID:textSize="18sp"/>        <VIEw          androID:layout_wIDth="match_parent"          androID:layout_height="1dp"          androID:layout_alignParentBottom="true"          androID:background="@color/black"/>      </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/green"/>        <TextVIEw          androID:ID="@+ID/tv_find_pwd"          androID:layout_wIDth="wrap_content"          androID:layout_height="wrap_content"          androID:layout_alignParentEnd="true"          androID:layout_alignParentRight="true"          androID:layout_alignParenttop="true"          androID:gravity="right"          androID:padding="15dp"          androID:text="忘记密码?"          androID:textcolor="@color/green"/>      </relativeLayout>      <button        androID:ID="@+ID/btn_enter"                androID:layout_wIDth="match_parent"        androID:layout_height="45dp"        androID:layout_gravity="center_horizontal"        androID:layout_marginleft="30dp"        androID:layout_marginRight="30dp"        androID:layout_margintop="20dp"        androID:background="@color/darkseagreen"        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:paddingBottom="30dp"      androID:orIEntation="vertical">      <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"/>        <ImageVIEw          androID:ID="@+ID/iv_qq"          androID:layout_wIDth="wrap_content"          androID:layout_height="wrap_content"          androID:layout_marginleft="20dp"          androID:layout_margintop="10dp"          androID:padding="10dp"          androID:src="@drawable/weixin"/>      </linearLayout>    </linearLayout>  </FrameLayout>

注意:

视频资源要添加res文件夹下创建raw文件夹

需要在onRestart()方法里重新加载视频,防止退出返回时视频黑屏

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

您可能感兴趣的文章:android换肤功能 如何动态获取控件中背景图片的资源id?Android实现动态切换组件背景的方法 总结

以上是内存溢出为你收集整理的android 仿QQ动态背景、视频背景的示例代码全部内容,希望文章能够帮你解决android 仿QQ动态背景、视频背景的示例代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1149689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存