我目前有一个带背景和前景图像的FrameLayout。前景图像使用alpha透明,以便透视并观察下面的背景。
前景图像需要保持原始位图的相同宽高比,因为它包含黑色屏幕中的透明圆圈,就像望远镜效果一样。我正在寻找任何分辨率兼容性。
不幸的是,我无法实现这一目标,而且前景总是显示它的圆形拉伸。
这是 XML 代码的一部分:
<FrameLayout
android:id="@+id/layout_parent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:foreground="@drawable/foreground"
android:foregroundGravity="center|fill_horizontal"
>
我也试图解决我的问题,提供两个不同的图像,一个比例为4:3,另一个比例为16:9,每个图像在一个不同的可绘制文件夹中,长和< strong> notlong 限定词。
/drawable-long/foreground.png (16:9 aspect)
/drawable-notlong/foreground.png (4:3 aspect)
仍然没有成功。
你知道如何获得这种效果吗?
感谢您的时间。
答案 0 :(得分:2)
我不相信你可以改变前景或背景的比例类型。我建议的是:
在ImageView
中添加额外FrameLayout
作为背景,并使用src
和scaleType
属性处理图片及其缩放方式
由于它是一个简单的黑色背景,只有一个透明的圆圈,你可以将其转换为9补丁,确保在圆圈周围均匀拉伸。圆圈不会缩放,但黑色区域将延伸以填充视图。
如果圈子也需要缩放,那么1号是我的个人推荐。
答案 1 :(得分:2)
在FrameLayout中更改此属性:
android:foregroundGravity="center"
这会将前景drawable放在FrameLayout的中心,而不是改变它的大小。
"center|fill_horizontal"
会将其置于中心并拉伸其宽度以填充FrameLayout宽度,这显然不是您想要的。