以编程方式设置 LayoutParams 不起作用
Setting LayoutParams programmatically not working
我希望 Imageview 的宽度和高度与整个屏幕匹配。在使用 Layout Inflater 膨胀视图后,我在 view.But 上设置 Layout 参数,图像的高度没有覆盖整个屏幕。这是代码:
LayoutInflater mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = mLayoutInflater.inflate(R.layout.viewpager, container, false);
itemView.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
ImageView imageView = (ImageView) itemView.findViewById(R.id.viewpager_image);
/*imageView.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));*/
imageView.setImageResource(mResources[position]);
container.addView(itemView);
return itemView;
这样做我的宽度与屏幕尺寸匹配,但高度与屏幕不匹配。我正在膨胀的布局具有线性布局(宽度、高度 - MATCH_PARENT)及其子图像视图(宽度、高度 - MATCH_PARENT)。我不知道我在这里做错了什么。
DisplayMetrics displaymetrics = new DisplayMetrics();
//if in activity then use
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
//if in adapter then use
context.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
//if in fragment then use
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int width = displaymetrics.widthPixels;
int height = displaymetrics.heightPixels;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, height);
imageView.setLayoutParams(layoutParams);
在您的代码中添加这些行
imageView.setScaleType(ScaleType.FIT_XY);
或
imageView.setScaleType(ScaleType.CENTER);
试试这个可能有用
我希望 Imageview 的宽度和高度与整个屏幕匹配。在使用 Layout Inflater 膨胀视图后,我在 view.But 上设置 Layout 参数,图像的高度没有覆盖整个屏幕。这是代码:
LayoutInflater mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = mLayoutInflater.inflate(R.layout.viewpager, container, false);
itemView.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
ImageView imageView = (ImageView) itemView.findViewById(R.id.viewpager_image);
/*imageView.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));*/
imageView.setImageResource(mResources[position]);
container.addView(itemView);
return itemView;
这样做我的宽度与屏幕尺寸匹配,但高度与屏幕不匹配。我正在膨胀的布局具有线性布局(宽度、高度 - MATCH_PARENT)及其子图像视图(宽度、高度 - MATCH_PARENT)。我不知道我在这里做错了什么。
DisplayMetrics displaymetrics = new DisplayMetrics();
//if in activity then use
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
//if in adapter then use
context.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
//if in fragment then use
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int width = displaymetrics.widthPixels;
int height = displaymetrics.heightPixels;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(width, height);
imageView.setLayoutParams(layoutParams);
在您的代码中添加这些行
imageView.setScaleType(ScaleType.FIT_XY);
或
imageView.setScaleType(ScaleType.CENTER);
试试这个可能有用