Dialog一般分为警告对话框和加载进度对话框2种,这里先说一下第一种,由于原生的对话框在大众看来,实在是丑的一逼!!所以这里讲一下自定义的对话框,其实我个人感觉原生还可以啊!也不是太难看啊!哈哈
顾名思义,自定义,就是让对话框模样按照自己想要的样式来显示。
废话不多说!开撸!
先看一张对话框里的xml布局,大概就是这个样子!根据自己的需求设置xml即可,当然 这种对话框布局肯定不会很复杂~!只是一个对话框而已~
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="#ff0000"/>
<TextView
android:layout_width="200dp"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:gravity="center"
android:textSize="16sp"
android:textColor="#000"
android:text="您还没有登录,不能邀请好友。是否立即登录邀请好友?"/>
<TextView
android:layout_width="match_parent"
android:layout_height="1px"
android:background="#969696"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/no"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="暂不"
android:paddingBottom="15dp"
android:paddingTop="15dp"
android:gravity="center"
android:textSize="16sp"/>
<TextView
android:layout_width="1px"
android:layout_height="match_parent"
android:background="#969696"/>
<TextView
android:id="@+id/login"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="登录"
android:paddingBottom="15dp"
android:paddingTop="15dp"
android:gravity="center"
android:textColor="#ff00"
android:textSize="16sp"/>
</LinearLayout>
</LinearLayout>
效果图是这样的:
MainActivity.java代码:
package com.example.lenovo.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import Utils.ToastUtils;
public class MainActivity extends Activity implements View.OnClickListener{
private Dialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button:
//创建对话框
dialog = new Dialog(this);
View view = LayoutInflater.from(this).inflate(R.layout.logding,null);
//给Dialog中的子view设置事件监听
view.findViewById(R.id.no).setOnClickListener(this);
view.findViewById(R.id.login).setOnClickListener(this);
dialog.setContentView(view);
//自定义宽高(高度一般不用调整,在xml调整好就可以了,这里我只调整了宽度)
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = 900;
dialog.getWindow().setAttributes(params);
//show之前设置返回键无效,触摸屏无效
dialog.setCancelable(false);
//显示对话框
dialog.show();
break;
case R.id.no:
dialog.dismiss();
break;
case R.id.login:
dialog.dismiss();
//这里实现业务逻辑
ToastUtils.showShort(this,"登录");
break;
}
}
}
OK ,over~ 是不是很简单~~