【问题标题】:ImageView hiding and showingImageView 隐藏和显示
【发布时间】:2018-01-20 17:23:11
【问题描述】:

我正在努力让我的 android 应用程序以编程方式显示和隐藏 imageView 对象。实际上,我正在努力从 imageView 对象中获得预期的行为。

按照这个question的答案,

这是我正在测试的内容:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback{

@Override
protected void onCreate(Bundle savedInstanceState) {

    ImageView warn = (ImageView)findViewById(R.id.gpsStatusWarning);

    warn.setImageResource(R.drawable.gps_error);
    warn.getLayoutParams().height = 64;
    warn.getLayoutParams().width = 64;
}

}

上面的代码在父活动的 OnCreate 方法中被调用,它完全符合我的预期:它将对象的图像更改为指定的图像,并设置该对象的高度和宽度。但是,我似乎无法将对象设置为 INVISIBLE 或 GONE。事实上,我根本无法让它消失。我都试过了:

    warn.setVisibility(View.INVISIBLE);
    warn.setVisibility(View.GONE);

但图像仍然可见。我什至尝试在 XML 中将其更改为

    android:visibility="gone"

但即使这样也无济于事。图像仍然可见。

我做错了什么?我错过了对某些更新方法的调用吗?设置图片资源会强制绘制图片吗?

【问题讨论】:

  • 您应该发布更多相关代码。这将有助于人们了解全局。

标签: java android android-layout android-imageview


【解决方案1】:

试试:

warn.setImageResource(0);

或者:warn.setImageResource(android.R.color.transparent);

【讨论】:

  • 感谢您的回复,这两个都有效!但我可能更感兴趣的是发现可见性设置不起作用的原因。
【解决方案2】:

这是您在 Android 上以编程方式设置 ImageView 对象可见性的方式:

yourImage.setVisibility(View.VISIBLE);
yourImage.setVisibility(View.INVISIBLE);
yourImage.setVisibility(View.GONE);

您还可以像这样在 XML 布局文件中设置 ImageView 对象的初始状态:

visibility="visible"
visibility="gone"
visibility="invisible"

您可以按照关于ImageView 控件的官方文档在下面的此链接上亲自尝试。 Learn how to set the visibility state of a view.

【讨论】:

  • 嗨,先生。请在回答之前阅读问题。谢谢:)
  • 我用我通常设置可见性和文档链接的两种方式发布了您的回复。希望它可以帮助您了解为什么您的代码一开始就不起作用。干杯
【解决方案3】:

imageView.setVisibility(View.GONE); imageView.setVisibility(View.VISIBLE);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    相关资源
    最近更新 更多