直播平台搭建,自定义View实现loading动画加载
直播平台搭建,自定义View实现loading动画加载
先自定义一个View,继承自LinearLayout,在Layout中,添加布局控件
1 | <br> /**<br> * Created by xiedong on 2017/3/7.<br> */ <br> <br> public class Loading_view extends LinearLayout {<br> private Context mContext;<br> private RelativeLayout loading_content;<br> private ImageView img;<br> private TextView loadingText;<br> <br> private AnimationDrawable animationDrawable;<br> <br> public Loading_view(Context context) {<br> super(context);<br> mContext = context;<br> setupView();<br> }<br> <br> public Loading_view(Context context, AttributeSet attrs) {<br> super(context, attrs);<br> mContext = context;<br> setupView();<br> }<br> <br> public Loading_view(Context context, AttributeSet attrs, int defStyleAttr) {<br> super(context, attrs, defStyleAttr);<br> mContext = context;<br> setupView();<br> }<br> <br> private void setupView() {<br> // View view= LayoutInflater.from(mContext).inflate(R.layout.loading_view_layout,this); //一定要把布局添加进容器,不能为null<br> <br> View.inflate(mContext, R.layout.loading_view_layout, this);<br> <br> loading_content = (RelativeLayout) findViewById(R.id.loading_content);<br> img = (ImageView) findViewById(R.id.img);<br> loadingText = (TextView) findViewById(R.id.text);<br> <br> img.setImageResource(R.drawable.anim_loading);<br> animationDrawable = ((AnimationDrawable) img.getDrawable());<br> animationDrawable.start();<br> }<br> <br> public void setMessage(String msg) {<br> loadingText.setText(msg);<br> }<br>} |
自定义View的布局文件:
1 | <br><?xml version= "1.0" encoding= "utf-8" ?> <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width= "match_parent" android:layout_height= "match_parent" android:background= "#90000000" android:gravity= "center" > <RelativeLayout android:id= "@+id/loading_content" android:layout_width= "150dp" android:layout_height= "120dp" android:background= "#40ffffff" > <ImageView android:id= "@+id/img" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_centerInParent= "true" android:background= "@mipmap/ic_launcher" /> <TextView android:id= "@+id/text" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_below= "@+id/img" android:layout_centerHorizontal= "true" android:text= "加载中..." /> </RelativeLayout> </LinearLayout> <br> |
这里使用AnimationDrawable的方式来实现动画效果,AnimationDrawable的list文件如下:
1 | <br> <br><animation-list xmlns:android= "http://schemas.android.com/apk/res/android" android:oneshot= "false" > <item android:drawable= "@drawable/loading1" android:duration= "100" /> <item android:drawable= "@drawable/loading2" android:duration= "100" /> <item android:drawable= "@drawable/loading3" android:duration= "100" /> <item android:drawable= "@drawable/loading10" android:duration= "100" /> </animation-list><br> <br> <br> |
自定义View部分的工作完成之后,接下来就是如何在项目中具体运用。在相应的布局中使用的时候,一定要记得把此布局文件add进ViewGroup中,因为该自定义的View跟调用他的View是独立的两个View,没有完成add的话,loading布局可能不会显示出来。
1 | private Loading_view loading_view; loading_view = new Loading_view(this); //实例化自定义VIew loading_view.setMessage("loading文字提示内容...."); //添加当前自定义View进主布局文件 addContentView(loading_view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); |
以上就是直播平台搭建,自定义View实现loading动画加载, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-10-13 直播app开发搭建,关于对象内函数定义的一种方式——中括号
2022-10-13 直播平台搭建源码,实现活动报名登记
2022-10-13 直播电商平台开发,BigDecimal 加减乘除顺序验证
2021-10-13 在线直播系统源码,Dart-Flutter DateTime日期转换
2021-10-13 直播带货源码,图片左上角或右上角点击返回按钮
2021-10-13 聊天平台源码,聊天平台如何获取到音频流