我有从网址填充的ImageView。当图像进入时,我使用“centerInside”策略对其进行缩放,这很好,我使用“adjustViewBounds”调整ImageView边界。
在下载图像之前,我不知道ImageView的大小。但是,我需要显示一个合理大小的占位符。所以我输入了“minHeight = 150dp”的彩色背景。
<ImageView
android:id="@+id/leadImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="150dp"
android:background="@color/color_primary"
android:adjustViewBounds="true"
android:scaleType="centerInside" />
现在,这导致如果下载的图像小于150 dp,ImageView仍然会占用150dp,这是我不想要的。
所以我试过的是构建一个派生的ImageView类,如果drawable已经存在则覆盖minHeight,如下所示:
class SomeImageView extends ImageView {
protected int getSuggestedMinimumHeight() {
if (getDrawable() != null)
return 0;
return super.getSuggestedMinimumHeight();
}
}
我是在不同的变体中做到的,但是当它在ImageVew中确实存在时,似乎getDrawable()为null。如果不深入了解ImageView的内部机制,很难猜出为什么会这样。
当在ImageView上设置了drawable时,也许有人会建议使用另一种方法或解决方法来覆盖minHeight 0。
答案 0 :(得分:1)
一旦您知道实际图像尺寸,就应该能够在代码中以编程方式更改minHeight属性。 ImageView从View类继承了一个方法<?php
$val = "hello world ansprüche theme park hello";
$ne = "ansprüche";
echo substr_count(strtolower(utf8_decode($val)), utf8_decode($ne));
?>
。