本文介绍了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动态背景、视频背景的示例代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)