通俗的说,inflate就相当于将一个xml中定义的布局找出来
如果你的Activity里用到别的layout,如显示图片的对话框,其layout布局文件为view.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><ImageView android:id="@+id/image" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="fitCenter" /> </LinearLayout>你就必须用inflate()先将图片对话框上的layout找出来,然后再用这个layout对象去找到它上面的组件,如:
// 加载view.xml界面布局代表的视图View viewDialog = getLayoutInflater().inflate( R.layout.view, null);// 获取viewDialog中ID为image的组件ImageView image = (ImageView) viewDialog .findViewById(R.id.image);// 设置image显示指定图片image.setImageBitmap(BitmapFactory.decodeFile( fileNames.get(position)));// 使用对话框显示用户单击的图片new AlertDialog.Builder(MediaProviderTest.this) .setView(viewDialog).setPositiveButton("确定", null) .show();