【问题标题】:Setting LayoutParams programmatically not working以编程方式设置 LayoutParams 不起作用
【发布时间】:2019-01-15 13:01:09
【问题描述】:

我希望 Imageview 的宽度和高度与整个屏幕匹配。使用 Layout Inflater 膨胀视图后,我在视图上设置了布局参数。但是图像的高度没有覆盖整个屏幕。代码如下:

    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)。我不知道我在这里做错了什么。

【问题讨论】:

  • 您是否检查过imageview的高度是否适合屏幕尺寸而不是实际图像?尝试在 Image View 上将 scaleType 设置为 FitXY?
  • @Dr.aNdRO 是的,它适用于设置 scaleType ..谢谢

标签: android layout-inflater layoutparams


【解决方案1】:

在您的代码中添加这些行

imageView.setScaleType(ScaleType.FIT_XY);

imageView.setScaleType(ScaleType.CENTER);

试试这个可能有用

【讨论】:

    【解决方案2】:
        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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-17
      • 2019-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2021-02-07
      • 2011-11-13
      相关资源
      最近更新 更多