public class CustomDialog extends Dialog {
//获取dialog
private Context mContext;
private int resourceLayoutId=0;
private View rootView;
private boolean isfull;
public boolean isIsfull() {
return isfull;
}
public void setIsfull(boolean isfull) {
this.isfull = isfull;
}
public CustomDialog(@NonNull Context context) {
super(context);
this.mContext = context;
}
public CustomDialog(@NonNull Context context,int themeResId,int resourceLayoutId) {
super(context,themeResId);
this.mContext = context;
this.resourceLayoutId =resourceLayoutId;
}
public CustomDialog(@NonNull Context context, int resourceLayoutId) {
super(context);
this.mContext = context;
this.resourceLayoutId = resourceLayoutId;
}
private void init(){
WindowManager windowManager = ((Activity)mContext).getWindowManager();
Display display = windowManager.getDefaultDisplay();
WindowManager.LayoutParams lp = getWindow().getAttributes();
if (!isfull){
lp.width = display.getWidth()*4/5; // 设置dialog宽度为屏幕的4/5
}else {
lp.width = display.getWidth();
lp.height = display.getHeight();
}
getWindow().setAttributes(lp);
setTranslucentStatus();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
rootView = LayoutInflater.from(mContext).inflate(resourceLayoutId,null);
setContentView(rootView);
init();
}
public void setText(int itemId,String msg){
if (rootView!=null && itemId!=0){
TextView textView = rootView.findViewById(itemId);
textView.setText(msg);
}
}
public void setText(int itemId,Spanned msg){
if (rootView!=null && itemId!=0){
TextView textView = rootView.findViewById(itemId);
textView.setText(msg);
}
}
public String getText(int itemId){
if (rootView!=null && itemId!=0){
TextView textView =rootView.findViewById(itemId);
return textView.getText().toString();
}
return "";
}
public void setOnClickListenner(int itemId, View.OnClickListener onClickListener){
if (rootView!=null && itemId!=0){
rootView.findViewById(itemId).setOnClickListener(onClickListener);
}
}
public <T extends View> T getView(int itemId) {
if (rootView!=null && itemId!=0){
return rootView.findViewById(itemId);
}
return null;
}
/**
* 设置控件是否隐藏
* @param itemId
* @param visibled
*/
public void setVisible(int itemId,int visibled) {
if (rootView!=null && itemId!=0){
rootView.findViewById(itemId).setVisibility(visibled);
}
}
/**
* 设置沉浸式状态栏为透明颜色
*/
private void setTranslucentStatus() {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0 全透明实现
Window window = getWindow();
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
} else {//4.4 全透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
}
}
}
通用dialog模板
最新推荐文章于 2020-07-25 15:51:17 发布