首页 > 代码库 > Android之inflate用法:加载其他layout

Android之inflate用法:加载其他layout

通俗的说,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();





Android之inflate用法:加载其他layout