所以,我正在尝试将相机预览视为背景,并在其上方显示imageview。检查我要求的question out,以便更好地了解我想要完成的任务。但是,我没有使用FrameLayout,而是发现使用RelativeLayout更容易(因为我想在屏幕上放置视图)。问题是我无法获取图像视图(在表面视图上)占据整个屏幕。无论我如何重新调整图像大小,它仍然会在中心显示而不会填满屏幕。
所以,我的问题是,如何让imageview在整个屏幕上填满表面视图?也许,我犯了一个简单的错误,但如果是这样,请指出。任何帮助将不胜感激!谢谢!
这是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/relative" >
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/image"
android:src="@drawable/background" >
</ImageView>
<Button
android:id="@+id/scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_margin="10dp"
android:text="Scan"
android:textSize="20dp"
android:textStyle="bold"
android:onClick="Scan" />
<Button
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/scan"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:text="Search"
android:textSize="20dp"
android:textStyle="bold"
android:onClick="Search" />
<Button
android:id="@+id/importing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/search"
android:layout_centerHorizontal="true"
android:layout_margin="10dp"
android:text="Import"
android:textSize="20dp"
android:textStyle="bold"
android:onClick="Import" />
</RelativeLayout>
这是我放置视图的代码(放在前面,以便它们在表面视图中可见):
mPreview = new CameraPreview(this, mCamera);
relative.addView(mPreview);
layout.bringToFront();
scan.bringToFront();
search.bringToFront();
friendImport.bringToFront();
修改 这是我正在谈论的一个示例图像(我试图让白色透明图像覆盖整个屏幕):
答案 0 :(得分:1)
我是否更正你要将android:id =“@ + id / image”拉伸到整个布局? 首先检查布局视图,即ImageView占用整个空间。 如果是,则将适当的缩放类型添加到ImageView属性列表中:
android:scaleType="fitXY"
或者作为替代方案,将图像资源应用为“src”而不是“background”:
android:background="@drawable/background"
祝你好运。
答案 1 :(得分:0)
经过一段时间的实验,我似乎找到了解决问题的方法。我的图像显示类似于这张图片:
这很奇怪,因为这是9补丁图像的工作方式,我没有将我的图像声明为9补丁。但即使我调用match_parent(甚至fill_parent),它也只填充到填充区域,就像我发布的图像一样。
因此,经过大量的试验和错误,我带走了图像上的任何边框,并取消了所有的模糊效果。由于某种原因,图像的文件大小要小得多。然后,我试着把它作为背景和......成功!
我不太清楚为什么它开始不起作用,但是,我有一个理论,也许,因为图像上有1px边框,它将其保存为9补丁PNG而不是一个普通的PNG文件。或者可能是由于图像上的模糊效果。我不太确定,但是,我知道,一旦我取消了模糊效果并移除了边框,它确实有效。
我希望这对任何可能遇到类似问题的人都有用!