【问题标题】:Setting of ImageView's gravity to the center in android programmatically以编程方式将ImageView的重力设置为android中的中心
【发布时间】:2011-12-21 18:36:30
【问题描述】:

我想用下面的代码设置一个Imageviews,ImageIcons[i]数组的重力到中心,

ImageIcons[i] = new ImageView(this);
ImageIcons[i].setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
layout.addView(ImageIcons[i]);

我在设置重力时被卡住了。我请求 SO 的人指导我。

谢谢

【问题讨论】:

  • 查看我的回答here。它帮助我集中了 Imageview。

标签: android center dynamic android-imageview gravity


【解决方案1】:

试试这个

LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(width, height);
layoutParams.gravity=Gravity.CENTER;
ImageIcons[i].setLayoutParams(layoutParams);

【讨论】:

  • 完美@Walid Hossain。非常感谢。
【解决方案2】:

从视图中获取布局参数,修改并重新设置。

image.setBackgroundResource(R.drawable.mobile);
LayoutParams params = (LayoutParams) image.getLayoutParams();
params.gravity = Gravity.CENTER;
image.setLayoutParams(params);

【讨论】:

    【解决方案3】:

    首先将宽度设置为match_parent,然后设置重力,否则重力将不起作用。希望它会起作用。

    ImageIcons[i].setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
    LayoutParams.WRAP_CONTENT));
    ImageIcons.setGravity(Gravity.CENTER);
    

    【讨论】:

    • 好的。想知道出了什么问题。感谢 Android Killer。
    【解决方案4】:
    ImageView myImage = new ImageView(this);
    FrameLayout.LayoutParams myImageLayout = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,FrameLayout.LayoutParams.WRAP_CONTENT);
    myImageLayout.gravity=Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL;
                myImage.setLayoutParams(myImageLayout);
    

    【讨论】:

      【解决方案5】:
          LinearLayout llBasicInfo = new LinearLayout(context);
          llBasicInfo.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
          llBasicInfo.setOrientation(LinearLayout.VERTICAL);
          ImageView imageView = new ImageView(context);
          LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(200,200);
          layoutParams.gravity=Gravity.CENTER;
          imageView.setLayoutParams(layoutParams);
          llImage.addView(imageView);
      

      【讨论】:

        【解决方案6】:

        我认为下面的代码可能对某人有所帮助

        LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        layoutParams.leftMargin = 10;
        layoutParams.rightMargin = 10;
        parent.addView(tips[i], layoutParams);
        

        【讨论】:

          【解决方案7】:

          如果您的 ImageViewRelativeLayout 的子级

          那么这可能会有所帮助..

          public void setLogoPosition(String pos) 
          {
          
              //_Watermark is ImageView Object
          
              RelativeLayout.LayoutParams layoutParams =
                      (RelativeLayout.LayoutParams) _Watermark.getLayoutParams();
          
          
              layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, 0);
              layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, 0);
              layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
              layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, 0);
              layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, 0);
          
              switch (pos) {
                  case "topleft":
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
                      break;
                  case "topright":
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
                      break;
                  case "bottomleft":
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
                      break;
                  case "bottomright":
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
                      break;
                  case "center":
                      layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
                      break;
                  case "topcenter":
                      layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
                      break;
                  case "bottomcenter":
                      layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
                      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
                      break;
              }
              _Watermark.setLayoutParams(layoutParams);
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-10-06
            • 2012-05-08
            • 1970-01-01
            相关资源
            最近更新 更多