直播软件开发,工具类的自定义弹窗效果
直播软件开发,工具类的自定义弹窗效果
1.带按钮的弹出框(带一个确定按钮)
1 | <br> private void showDialog(String content){<br> View view = LayoutInflater.from(mContext).inflate(R.layout.dialog_licence,null,false);<br> final AlertDialog dialog = new AlertDialog.Builder(mContext).setView(view).create();<br> <br> TextView btn_agree_high_opion = view.findViewById(R.id.tv_confirm);<br> TextView tv_content = view.findViewById(R.id.tv_dialog_msg);<br> tv_content.setText(content);<br> btn_agree_high_opion.setOnClickListener( new View.OnClickListener() {<br> @Override<br> public void onClick(View v) {<br> //... To-do<br> dialog.dismiss();<br> }<br> });<br> dialog.show();<br> int width = mContext.getResources().getDisplayMetrics().widthPixels;<br> //此处设置位置窗体大小,我这里设置为了手机屏幕宽度的3/4 注意一定要在show方法调用后再写设置窗口大小的代码,否则不起效果会<br>// dialog.getWindow().setLayout((height/4*3), LinearLayout.LayoutParams.WRAP_CONTENT);<br> Window win = dialog.getWindow();<br> win.setGravity(Gravity.CENTER); // 这里控制弹出的位置<br> win.getDecorView().setPadding(0, 0, 0, 0);<br> WindowManager.LayoutParams lp = win.getAttributes();<br> lp.width = width/2;<br> lp.height = WindowManager.LayoutParams.WRAP_CONTENT;<br> dialog.getWindow().setBackgroundDrawable(null);<br> win.setAttributes(lp);<br>} |
布局文件示例(布局文件有些乱,只是个示例):
1 | <br><LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" <br> android:layout_width= "fill_parent" <br> android:layout_height= "fill_parent" <br> android:layout_marginLeft= "@dimen/px30" <br> android:layout_marginRight= "@dimen/px30" <br> android:background= "@drawable/bg_radius_gray" <br> android:orientation= "vertical" ><br> <LinearLayout<br> android:layout_width= "fill_parent" <br> android:layout_height= "wrap_content" <br> android:orientation= "vertical" ><br> <LinearLayout<br> android:layout_width= "fill_parent" <br> android:layout_height= "@dimen/px100" <br> android:gravity= "center" <br> android:orientation= "vertical" ><br> <TextView<br> android:id= "@+id/tv_dialog_msg" <br> android:layout_width= "fill_parent" <br> android:layout_height= "wrap_content" <br> android:layout_margin= "@dimen/px20" <br> android:gravity= "center" <br> android:textColor= "@color/color_333333" <br> android:textSize= "@dimen/font_14" /><br> </LinearLayout><br> <View<br> android:layout_width= "fill_parent" <br> android:layout_marginHorizontal= "@dimen/px20" <br> android:layout_height= "@dimen/px1" <br> android:background= "@color/color_515c74" /><br> <LinearLayout<br> android:layout_width= "fill_parent" <br> android:layout_height= "wrap_content" <br> android:gravity= "bottom" <br> android:orientation= "horizontal" ><br> <TextView<br> android:id= "@+id/tv_confirm" <br> android:layout_width= "fill_parent" <br> android:layout_height= "@dimen/px68" <br> android:layout_weight= "1" <br> android:gravity= "center" <br> android:text= "@string/common_confirm_text" <br> android:textColor= "@color/color_333333" <br> android:textSize= "@dimen/font_14" /><br> </LinearLayout><br> </LinearLayout><br></LinearLayout> |
2. 不带按钮,不用写布局文件的弹出框
1 | <br> //3秒自动消失<br>AlertDialog.Builder builder = new AlertDialog.Builder(mContext);<br>// builder.setTitle("发送成功!");<br> builder.setMessage(content);<br> builder.setCancelable(true);<br> final AlertDialog dlg = builder.create();<br> dlg.show();<br> final Timer t = new Timer();<br> t.schedule(new TimerTask() {<br> public void run() {<br> dlg.dismiss();<br> t.cancel();<br> }<br> }, 3000);<br>Window win = dlg.getWindow();<br> win.setGravity(Gravity.CENTER); // 这里控制弹出的位置<br>// win.getDecorView().setPadding(0, 0, 0, 0);<br> int width = mContext.getResources().getDisplayMetrics().widthPixels;<br> WindowManager.LayoutParams lp = win.getAttributes();<br> lp.width = width/5*3;<br> lp.height = WindowManager.LayoutParams.WRAP_CONTENT;<br> dlg.getWindow().setBackgroundDrawableResource(R.drawable.bg_radius_gray);<br> win.setAttributes(lp); |
以上就是 直播软件开发,工具类的自定义弹窗效果,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-07-15 一对一聊天app源码,几种常用的定时器
2021-07-15 网页直播源码,自定义背景色圆角样式的方法
2021-07-15 短视频直播源码,CreateTrackbar亮度和对比度调整
2021-07-15 小视频app源码,CreateTrackbar亮度和对比度调整
2021-07-15 短视频带货app开发,java外观模式Facade
2021-07-15 直播短视频源码,身份证图片识别