通俗的说,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();
时间: 2024-10-09 00:39:54