今天做新浪客户端的Oauth授权页面时,看到课程里面讲到的inflate函数。
inflate简介:
通俗的说,inflate就相当于将一个xml中定义的布局找出来。
因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件。
因此如果你的Activity里如果用到别的layout。比如对话框上的layout,你还要设置对话框上的layout里的组件(像图片ImageView,文字TextView)上的 内容,你就必须用inflate()先将对话框上的layout找出来,然后再用这个layout对象去找到它上面的组件。
View digView = View.inflate(this, R.layout.authorize_dialog, null);
//上面的digView可以看成是activity的布局,使用setContentView
//authorization_dialog是我建立的对话框的布局,包括下面代码里的样式等等定义。
dialog = new Dialog(this, R.style.auth_dialog);
dialog.setContentView(digView);
dialog.show();
实现的效果就是
图中的对话框的透明效果,文字,logo,按钮都是自定义样式。