Dialogplus:
1.Dialogplus是一个非常简单易用的Dialog对话框控件;
2.Dialogplus是通过DecorView进行插入,是一个阻塞式的窗口;
3.Dialogplus是可定制的;
一个简单的dialog制作过程,才疏学浅,皮薄馅儿少,望指正:
emmm.....
大概样子(摸鱼时间做的,丑的亚皮,大家可以自定义样子....QAQ)
第一步,添加依赖:
在[build.gradle(:app)]中添加:
implementation 'com.orhanobut:dialogplus:1.11@aar'
添加成功后:
第二步:
把点击界面做一下,
xml代码(一切从简,摸鱼中...):
因为项目使用的弹窗较多切样式不同,我就把自定义的dialog封装在一个DialogManage中使用,适合多中弹窗跳出使用:
下面是dialog的xml代码
下面是MainActivity的实现逻辑,简单的逻辑,点击,跳出弹窗:
Demo代码(整个):
MainActivity:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Context mcontext;
private TextView dialog_button;
private DialogPlus dialog_test;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mcontext = this;
dialog_button = (TextView) findViewById(R.id.dialog_button);
dialog_button.setOnClickListener(this);
dialog_test = DialogManage.getDialogManage().dialogPlus(mcontext,//Context
DialogManage.DIALOG_TYPE_NEWTEST,//标记
new ViewHolder(R.layout.dialog_test),//layout视图
Gravity.CENTER);//居中
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.dialog_button:
dialog_test.show();
break;
default:
break;
}
}
}
activity_main:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/dialog_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点我起飞"
android:textSize="25sp"
android:layout_centerInParent="true"/>
</RelativeLayout>
DialogManage:
public class DialogManage {
public static final int DIALOG_TYPE_NEWTEST = 0;//简单测试dialog,
// 有需求可继续添加标记,比如:
public static final int DIALOG_TYPE_SECONDTEST = 1;//我是第二个dialog
private static DialogManage dialogManage;
private DialogPlus dialogPlus;
private Context mContext;
public static DialogManage getDialogManage() {
if (dialogManage == null) {
dialogManage = new DialogManage();
}
return dialogManage;
}
public DialogPlus dialogPlus(Context context, int dialogType, Holder holder, int gravity) {
mContext = context;
DialogPlusBuilder dialogPlusBuilder = DialogPlus.newDialog(mContext);
dialogPlusBuilder.setContentHolder(holder);
dialogPlusBuilder.setGravity(gravity);
switch (dialogType) {
case DIALOG_TYPE_NEWTEST:
initTestDialog(dialogPlusBuilder);
break;
case DIALOG_TYPE_SECONDTEST:
break;
default:
break;
}
return dialogPlus;
}
private void initTestDialog(DialogPlusBuilder dialogPlusBuilder) {
dialogPlusBuilder.setCancelable(false);
dialogPlusBuilder.setContentWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
dialogPlusBuilder.setContentHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
dialogPlusBuilder.setOnClickListener(new OnClickListener() {
@Override
public void onClick(DialogPlus dialog, View view) {
switch (view.getId()) {
case R.id.dialog_close:
dialog.dismiss();
break;
default:
break;
}
}
});
dialogPlus = dialogPlusBuilder.create();
}
}
dialog_test:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="200dp">
<!-- 适配的话,有时间再做,先就固定宽高了哈,懒惰-->
<TextView
android:id="@+id/text_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="我是一个弹窗"
android:textSize="20sp"/>
<Button
android:id="@+id/dialog_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/text_dialog"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="点我消失"/>
</RelativeLayout>
摸鱼时间堆一下,第一次写CSDN,望指教: