对话框 在android中是一种很常见的交互提示用户的方式,但是很多产品狗都叫我们这些做android的仿ios,搞的我们android程序员很苦逼,凭什么效果老是仿ios,有没有一点情怀,不过ios在界面封装确实比android好很多,吐槽完毕,比如一种很常见的场景就是在没网的情况下 提示用户,看效果图:


在很多界面都要有提示,那么就自然而然想到了封装,而不至于在每个页面都重写一篇,话不多说直接上代码

CommonDialog.java

public class CommonDialog extends Dialog{ private Context context; private String title;     private ClickListenerInterface clickListenerInterface;public CommonDialog(Context context) {super(context, R.style.MyDialogStyle);this.context = context;} @Override protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         init();    } private void init() {LayoutInflater inflater =LayoutInflater.from(context);View view =inflater.inflate(R.layout.dialog_common, null);setContentView(view);TextView tv_ok=  (TextView) view.findViewById(R.id.tv_ok);tv_ok.setOnClickListener(new clickListener());        Window dialogWindow = getWindow();        WindowManager.LayoutParams lp = dialogWindow.getAttributes();        DisplayMetrics d = context.getResources().getDisplayMetrics(); // 获取屏幕宽、高用        lp.width = (int) (d.widthPixels * 0.8); // 高度设置为屏幕的0.6        dialogWindow.setAttributes(lp);}public interface ClickListenerInterface {        public void doConfirm();   }    public void setClicklistener(ClickListenerInterface clickListenerInterface) {        this.clickListenerInterface = clickListenerInterface;     } private class clickListener implements View.OnClickListener {         @Override          public void onClick(View v) {              int id = v.getId();            switch (id) {             case R.id.tv_ok:             dismiss();                break;            }         }     };}

dialog_common.xml

<?xml version="1.0" encoding="UTF-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/dialog_layout"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@drawable/login_bg"    android:gravity="center_horizontal"    android:orientation="vertical"     android:layout_marginBottom="10dp"    >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_marginTop="1dp"        android:gravity="center_horizontal"        android:padding="10dp"        android:text="温馨提示"        android:textColor="@color/c282828"        android:textSize="18sp" /><TextView     android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="请求超时,请确定网络是否正常"    android:textSize="15sp"    android:textColor="#383838"    /><View        android:layout_width="match_parent"        android:layout_height="0.4dp"        android:background="@color/line_color01"        android:layout_marginTop="10dp"         /><TextView     android:id="@+id/tv_ok"    android:layout_width="fill_parent"    android:layout_height="30dp"    android:text="确定"    android:textSize="16sp"    android:layout_marginTop="10dp"    android:layout_marginBottom="10dp"    android:focusable="true"    android:clickable="true"    android:gravity="center"    android:textColor="#00B2EE"    /></LinearLayout>

对话框样式 style

<style name="MyDialogStyle">        <item name="android:windowBackground">@android:color/transparent</item>        <item name="android:windowFrame">@null</item>        <item name="android:windowNoTitle">true</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowIsTranslucent">true</item>        <item name="android:windowContentOverlay">@null</item>        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>        <item name="android:backgroundDimEnabled">true</item>    </style>
使用:

final CommonDialog confirmDialog = new CommonDialog(getActivity());
confirmDialog.show();
confirmDialog.setClicklistener(new CommonDialog.ClickListenerInterface() {
@Override
public void doConfirm() {}
});

更多相关文章

  1. Java 设计模式-建造者模式(Builder)Android讲解
  2. android 仿ios 对话框已封装成工具类
  3. Android(安卓)高亮指示层提示
  4. Android(安卓)Camer2与Camera1 自定义相机拍照封装实例讲解
  5. Android(安卓)升级Android(安卓)Studio升级3.5提示下载fastutil
  6. android 震动和提示音的实现代码
  7. android 添加对back按钮的处理,点击提示退出
  8. Android(安卓)GoogleMap Overlay (图层标记)
  9. android中Notification的使用

随机推荐

  1. android 仿微信聊天气泡效果实现思路
  2. 巧用android 控件—CheckBox + 状态选择
  3. Android(安卓)Monkey测试入门-2-ADB安装
  4. Android(安卓)Add外部library工程,总是链
  5. Android(安卓)实现广告欢迎界面(倒计时)
  6. Android线程通信之Handler
  7. android 安全讲座第四层(扩展篇)
  8. Android(安卓)+ HTML开发手机应用 demo
  9. android 仿IOS实现SegmentControl
  10. android中非阻塞socket通信