假设我想使用ImageView显示某些内容的图像,我想在其上面放置新视图(例如,在世界地图图像上显示图钉的动画ImageView,或智能手机图像顶部的切换视图) ).
这意味着无论ImageView如何显示图像,视图都应该在其中,在正确的位置内,具有与指定相同的大小,或者与imageView本身相关的大小
与其他视图相反,ImageView可以具有一定的大小,但其内容是其他内容(保持宽高比).
我试图使用ConstraintLayout,但这并没有真正帮助,因为ImageView可以改变它的大小(例如在更改方向时),从而破坏了我给出了与ImageView相比的视图的位置.
我发现一些库可以处理类似的事情(比如这里),我甚至在此之前问过类似的问题,但是所有这些解决方案都是针对ImageView中的静态图像,但我搜索的是添加一个视图在ImageView之上.
如何正确地将视图放在ImageView的内容之上?
与ImageView内容的大小相比,如何向下/向上缩放视图?
可以使用ConstraintLayout根据ImageView的大小更改视图的比例吗?
代码很简单:
<ImageView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/cat"/>
Run Code Online (Sandbox Code Playgroud)
注意ImageView用于fill_parent宽度和高度.
图像cat是一个小图像,它将放大以适合ImageView,并同时保持宽高比.
我的问题是如何获得图像的显示尺寸?我试过了:
imageView.getDrawable().getIntrinsicHeight()
Run Code Online (Sandbox Code Playgroud)
但它是图像的原始高度cat.
我试过了:
imageView.getDrawable().getBounds()
Run Code Online (Sandbox Code Playgroud)
但哪个回归Rect(0,0,0,0).
我有一个比我正在放入的ImageView大的Bitmap.我将ScaleType设置为center_inside.如何获得缩小图像的尺寸?