gpt4 book ai didi

java - Android ImageView 布局问题

转载 作者:行者123 更新时间:2023-12-01 13:17:00 24 4
gpt4 key购买 nike

很可能存在重复的问题,但我还没有找到它。我正在以编程方式执行所有操作,而不是使用 xml。基本上我想做的是让 EditText 出现在图像下方。我将RelativeLayout 与ImageView 和EditText 结合使用。

这些是我为 ImageView 和 EditText 设置的参数:

RelativeLayout.LayoutParams editTextParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
editTextParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
editTextParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
editTextParams.width=500;
RelativeLayout.LayoutParams imageParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
imageParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
imageParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
imageParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
imageParams.addRule(RelativeLayout.ABOVE, editText.getId());

我已经验证正确地将 EditText 放置在右下角和上面的图像中。我遇到的情况是,如果图片“太高”,那么它会覆盖 EditText。我也尝试过使用

imageView.setScaleType(ImageView.ScaleType.FIT_XY);

它也会将其拉伸(stretch)到 EditText 上。

我正在使用的完整代码是这个

RelativeLayout layout = (RelativeLayout) findViewById(R.id.mainLayout);
ImageView imageView = new ImageView(this);
EditText editText = new EditText(this);

RelativeLayout.LayoutParams editTextParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
editTextParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
editTextParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
editTextParams.width=500;
RelativeLayout.LayoutParams imageParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
imageParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
imageParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
imageParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
imageParams.addRule(RelativeLayout.ABOVE, editText.getId());

imageView.setLayoutParams(imageParams);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
editText.setLayoutParams(editTextParams);
Bitmap image = getImage();
imageView.setImageBitmap(image);
layout.addView(editText);
layout.addView(imageView);

谢谢。任何建议将不胜感激。

enter image description here

最佳答案

创建一个 LinearLayout,然后在其中添加两个组件(ImageVIew 和 EditText)

这是你应该做的;

  • 将水平布局的方向设置为垂直,并将宽度设置为您需要的任何内容
  • 将两个组件的 with 都设置为 0,将权重设置为 1

之后,您应该将这两项放在另一项之上;

希望这有帮助

关于java - Android ImageView 布局问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com