dialog快速实现,无需继承Dialog类,实现播放视频!

简介: dialog快速实现,无需继承Dialog类,实现播放视频!
不需要继承Dialog类,快速的实现一个dialog对话框。


一,dialog的快速实现


1,dialog的布局,这是必不可少的,


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="600dp"
    android:layout_height="wrap_content"
    android:background="#dfdfdf"
    android:orientation="vertical">
    <TextView
        android:layout_width="600dp"
        android:layout_height="50dp"
        android:text="小车账户充值"
        android:textSize="30sp"
        android:textStyle="bold"
        android:gravity="center"
        android:textColor="#000"
        android:background="#999"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginTop="50dp"
        android:layout_gravity="center_horizontal">
        <TextView
            android:id="@+id/a43_d_car"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:text="车牌号:"
            android:textSize="30sp"
            android:textStyle="bold"
            android:textColor="#000" />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:orientation="horizontal"
            android:layout_marginTop="10dp">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="50dp"
                android:text="充值金额:"
                android:textSize="30sp"
                android:textStyle="bold"
                android:gravity="center"
                android:textColor="#000" />
            <EditText
                android:id="@+id/a43_d_edit"
                android:layout_width="200dp"
                android:layout_height="match_parent"
                android:inputType="number"
                android:maxLength="3"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_marginTop="50dp"
            android:gravity="center">
            <Button
                android:id="@+id/a43_d_chongzhi"
                android:layout_width="150dp"
                android:layout_height="match_parent"
                android:text="充值"
                android:textSize="25sp"
                android:textColor="#000"/>
            <Button
                android:id="@+id/a43_d_quxioa"
                android:layout_width="150dp"
                android:layout_height="match_parent"
                android:layout_marginLeft="50dp"
                android:text="取消"
                android:textSize="25sp"
                android:textColor="#000"/>
        </LinearLayout>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="50dp" />
    </LinearLayout>
</LinearLayout>


2d65d23f6d4748949b924e4057485923.png


这是一个dialog布局,最上面是一个title,然后下面就是一些控件,没什么可说的。


2,在某个事件中,弹出dialog,实现对应的功能。


Button btn = convertView.findViewById(R.id.a43_chongzhi);
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //加载dialog布局
                    View view = View.inflate(A43.this,R.layout.a43_dialog,null);
                   //创建dialog对象
                    dialog = new Dialog(A43.this);
                   //去掉标题栏,使用我们自定义的
                    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                   //加载视图
                    dialog.setContentView(view);
                    //弹出对话框
                    dialog.show();
                    //获取对话框中的控件,实现相应的功能,
                    final EditText edit = view.findViewById(R.id.a43_d_edit);
                    Button btn = view.findViewById(R.id.a43_d_chongzhi);
                    Button quxioa = view.findViewById(R.id.a43_d_quxioa);
                    TextView title = view.findViewById(R.id.a43_d_car);
                    title.setText("车牌号:"+position+1);
                    quxioa.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            dialog.dismiss();
                        }
                    });
                    btn.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            int money = Integer.parseInt(edit.getText().toString().trim());
                            upData(position+1,money);
                        }
                    });
                }
            });
    //这里是一个网络请求,用来从服务器拿到数据。        
    private void upData(int i, int money) {
        String url = "http://192.168.1.104:8088/transportservice/action/SetCarAccountRecharge.do";
        String post = "{\"CarId\":"+i+",\"Money\":"+money+", \"UserName\":\"user1\"}";
        http.post(url, post, new Http.onReqeust() {
            @Override
            public void onReqsult(String str) {
                try {
                    JSONObject object = new JSONObject(str);
                   if (object.optString("RESULT").equals("S")){
                       Toast.makeText(A43.this, "充值成功", Toast.LENGTH_SHORT).show();
                       reqeust();
                       dialog.dismiss();
                   }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        });
    }

4cebaac233b3433da32a72337a77fc60.png

6de278e6d6694ce5bb08e7e842b7e74b.png

简单的说一下,就是加载视图,创建dialog对象,弹出dialog,最后根据加载的视图就可以拿到dialog中的控件,进行逻辑的处理。


二,使用dialog快速播放视频.


直接上代码,这个连布局都不用写。


layout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //创建VideoView对象,
                    VideoView videoView = new VideoView(A30.this);
                   //设置视频路径
                    videoView.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.movie));
                    //创建dialog对象
                    Dialog dialog = new Dialog(A30.this);
                   //去掉标题栏
                    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                   //将VideoView传入
                    dialog.setContentView(videoView);
                    //设置dialog的窗口位置和大小,这里没怎么设置,
                    Window window = dialog.getWindow();
                    WindowManager.LayoutParams params = window.getAttributes();
                    params.dimAmount = 0;
                    window.setAttributes(params);
                    //弹出dialog,
                    dialog.show();
                    //播放视频
                    videoView.start();
                }
            });


首先创建VideoView的对象,然后扔进dailog中,然后设置dialog的窗口位置和大小,最后弹出对话框,播放视频。


效果如图:


0a2653c851af460fa595bd959398a8f1.png

如有错误还请指出,谢谢!


相关文章
|
5月前
|
XML 数据格式
Andriod中为Dialog设置动画
Andriod中为Dialog设置动画
62 1
|
JavaScript 编译器
【Vue】利用v-model特性封装Dialog弹窗或可编辑窗口。
【Vue】利用v-model特性封装Dialog弹窗或可编辑窗口。
|
Android开发
android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置
android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置
Qml-Dialog不能隐藏标题栏和按钮自定义
在项目中,需要弹出一个对话框来完成用户输入的功能,为了考虑界面的同一,这里需要将原生自带的标题栏隐藏掉,换成自己写的
584 0
|
C#
WPF ViewModel与多个View绑定后如何解决的问题
原文:WPF ViewModel与多个View绑定后如何解决的问题 当重复创建View并绑定同一个ViewModel后,ViewModel中的字段更新,在新的View中的没有反应或者在View中找不到相应的视觉树(如ListBox的ListBoxItem) 初始的解决方案:View关闭后,注销属性Unregister Dependency。
1405 0
|
程序员 Android开发
有关自定义View的学习(View的点击事件传递流程)
1、安卓OnTouchListener,onTouchEvent,onClickListener执行顺序 首先我们相对比较熟悉的是处理滑动冲突时候的三个事件(ViewGroup 继承 View) (View是没有onInterceptTouchEvent方法的),先看看ViewGroup和View的事件流程方法: ViewGroup 1.
1187 0
|
图形学
Unity3D 重写下拉菜单/Dropdown组件、开启每个按钮可用
Override Dropdown Component 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
2720 0
|
XML Android开发 数据安全/隐私保护
UI组件-TextView及其子类
前言 时间就像海绵里的水,只要愿挤,总还是有的。 TextView组件 TextView直接继承了View,它的作用就是在界面上显示文本。 代码示例 效果 Screenshot_20171018-095040.png 提示 andriod:drawableBottom属性,在文本框内文本的底端绘制指定图像。
1155 0