直播平台软件开发,实现自定义标题栏
直播平台软件开发,实现自定义标题栏
新建一个class继承一个相对布局并重写其构造方法
1 | <br> public class CustomTitleBlock extends RelativeLayout {<br> public CustomTitleBlock(Context context) {<br> super(context);<br> }<br> public CustomTitleBlock(Context context, AttributeSet attrs) {<br> super(context, attrs);<br> }<br> public CustomTitleBlock(Context context, AttributeSet attrs, int defStyleAttr) {<br> super(context, attrs, defStyleAttr);<br> }<br> public CustomTitleBlock(Context context, AttributeSet attrs, int defStyleAttr,int defStyleRes) {<br> super(context, attrs, defStyleAttr, defStyleRes);<br> }<br>} |
创建一个Layout文件用于CustomTitleBlock.class绑定并初始化相关控件
1 | <br><?xml version= "1.0" encoding= "utf-8" ?><br><RelativeLayout xmlns:android= "http://schemas.android.com/apk/res/android" <br> xmlns:tools= "http://schemas.android.com/tools" <br> xmlns:app= "http://schemas.android.com/apk/res-auto" <br> android:id= "@+id/layout_title" <br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" <br> android:background= "@color/white" ><br> <androidx.constraintlayout.widget.ConstraintLayout<br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" <br> android:layout_marginLeft= "12dp" <br> android:layout_marginRight= "12dp" ><br> <androidx.constraintlayout.widget.ConstraintLayout<br> android:id= "@+id/left" <br> android:layout_width= "wrap_content" <br> android:layout_height= "match_parent" <br> app:layout_constraintLeft_toLeftOf= "parent" <br> app:layout_constraintTop_toTopOf= "parent" ><br> <ImageView<br> android:id= "@+id/iv_left" <br> android:layout_width= "wrap_content" <br> android:layout_height= "wrap_content" <br> app:layout_constraintBottom_toBottomOf= "parent" <br> app:layout_constraintLeft_toLeftOf= "parent" <br> app:layout_constraintTop_toTopOf= "parent" /><br> <TextView<br> android:id= "@+id/tv_left" <br> android:layout_width= "wrap_content" <br> android:layout_height= "wrap_content" <br> app:layout_constraintBottom_toBottomOf= "parent" <br> app:layout_constraintLeft_toRightOf= "@+id/iv_left" <br> app:layout_constraintTop_toTopOf= "parent" /><br> </androidx.constraintlayout.widget.ConstraintLayout><br> <TextView<br> android:id= "@+id/tv_centent" <br> android:layout_width= "wrap_content" <br> android:layout_height= "wrap_content" <br> android:textStyle= "bold" <br> android:textSize= "16sp" <br> app:layout_constraintBottom_toBottomOf= "parent" <br> app:layout_constraintRight_toRightOf= "parent" <br> app:layout_constraintTop_toTopOf= "parent" <br> app:layout_constraintLeft_toLeftOf= "parent" /><br> <EditText<br> android:id= "@+id/search_box" <br> android:layout_width= "wrap_content" <br> android:layout_height= "match_parent" <br> android:layout_marginTop= "4dp" <br> android:layout_marginBottom= "4dp" <br> android:textSize= "14sp" <br> android:background= "@drawable/search_box_style" <br> android:drawableLeft= "@drawable/search_64" <br> android:drawablePadding= "6dp" <br> android:paddingLeft= "8dp" <br> android:paddingRight= "8dp" <br> android:visibility= "invisible" <br> app:layout_constraintLeft_toRightOf= "@+id/left" <br> app:layout_constraintTop_toTopOf= "parent" <br> app:layout_constraintBottom_toBottomOf= "parent" <br> app:layout_constraintRight_toLeftOf= "@+id/right" /><br> <androidx.constraintlayout.widget.ConstraintLayout<br> android:id= "@+id/right" <br> android:layout_width= "wrap_content" <br> android:layout_height= "match_parent" <br> app:layout_constraintTop_toTopOf= "parent" <br> app:layout_constraintRight_toRightOf= "parent" ><br> <TextView<br> android:id= "@+id/tv_right" <br> android:layout_width= "wrap_content" <br> android:layout_height= "wrap_content" <br> android:layout_centerVertical= "true" <br> app:layout_constraintTop_toTopOf= "parent" <br> app:layout_constraintBottom_toBottomOf= "parent" <br> app:layout_constraintRight_toLeftOf= "@+id/iv_right" /><br> <ImageView<br> android:id= "@+id/iv_right" <br> android:layout_width= "wrap_content" <br> android:layout_height= "wrap_content" <br> app:layout_constraintRight_toRightOf= "parent" <br> app:layout_constraintTop_toTopOf= "parent" <br> app:layout_constraintBottom_toBottomOf= "parent" /><br> </androidx.constraintlayout.widget.ConstraintLayout><br> </androidx.constraintlayout.widget.ConstraintLayout><br></RelativeLayout> |
在values文件夹下创建一个attrs.xml文件用于声明控件的属性
1 | <br><?xml version= "1.0" encoding= "utf-8" ?><br><resources><br> < declare -styleable name= "CustomTitleBlock" ><br> <!-- 标题栏左边 --><br> <attr name= "leftText" format= "string" /><br> <attr name= "leftTextColor" format= "color" /><br> <attr name= "leftTextSize" format= "integer" /><br> <attr name= "leftImage" format= "reference" /><br> <!-- 标题栏中间 --><br> <attr name= "centerText" format= "string" /><br> <attr name= "centerTextColor" format= "color" /><br> <attr name= "centerTextSize" format= "integer" /><br> <!-- 搜索框 --><br> <attr name= "searchBox" format= "boolean" /><br> <attr name= "searchBoxHint" format= "string" /><br> <attr name= "searchBoxWidth" format= "dimension" ><br> <enum name= "match_parent" value= "-1" /><br> <enum name= "wrap_content" value= "-2" /><br> </attr><br> <!-- 标题栏右边 --><br> <attr name= "rightText" format= "string" /><br> <attr name= "rightTextColor" format= "color" /><br> <attr name= "rightTextSize" format= "integer" /><br> <attr name= "rightImage" format= "reference" /><br> </ declare -styleable><br></resources> |
以上就是 直播平台软件开发,实现自定义标题栏,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-02-23 app直播源码,选取矩形框并进行文字标注
2022-02-23 成品直播源码,点击滑动切换效果
2022-02-23 一对一聊天源码,vue实现环形进度条组件