查看表面视图:适用于某些Android版本

时间:2012-09-14 09:52:39

标签: java android view

我实际上正在制作一个使用SurfaceView绘制相机的Android应用程序。 我想在其上添加一些观点。

事实上,我已经做到了。它适用于我的Android 4.1.1。我的所有观点都是通过相机绘制的。

但是当我在Android 2.3上试用它时,它不再适用了。 取决于我正在做什么,它显示左上角的视图的一部分(好像父布局太小)

这是xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<FrameLayout
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:layout_weight="1">

    <com.example.calculatrice.CustomCameraView
        android:id="@+id/cameraView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/poiGroup">
        <Button
            android:id="@+id/bBack"
            android:layout_width="150dp"
            android:layout_height="80dp">
        </Button>
    </LinearLayout>
</FrameLayout>

我有一个按钮,它完美地显示在相机上。 我把想要绘制的视图放在该按钮下(带有“layout(x,x,x,x)”)。它们看起来很小(或不显示,依赖)。

Here is some usefull code
//In oncreate method
     customCamera = (CustomCameraView)this.findViewById(R.id.cameraView);

//Create view and add it to the layout

public void initObjects() { listPoiMarker = new LinkedList<POIMarker>(); int i = 0; while (i < names.length && names[i] != null) { Location locTmp = new Location(LocationManager.NETWORK_PROVIDER); locTmp.setLatitude(coordonates[0][i]); locTmp.setLongitude(coordonates[1][i]); POIMarker tmp = new POIMarker(getApplicationContext()); tmp.setPoiId(id[i]); tmp.setId(i); tmp.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); tmp.setName(names[i]); tmp.setLocation(locTmp); tmp.posScreenY = 100 + (i) * 60; listPoiMarker.add(tmp); tmp.setOnTouchListener(onTouchListener); ((LinearLayout) findViewById(R.id.poiGroup)).addView(tmp); tmp.layout(50, 50, 250, 250); i++; } }

不完全是我做的。实际上布局功​​能在其他地方。 但它是一样的。

在Android 4.1.1中工作正常,但在2.2或2.3中没有 我寻找解决方案大约2天。我尝试了999件事,没有用。 这就是我来这里寻求帮助的原因。

(以下是它的作用示例:http://drawsave.com/19Z 我不想添加图片..花太长时间

红色的是我添加的视图。它应该是一个矩形。但它是在2.2 | 2.3 .. .. )

感谢您的帮助

编辑:

我找到了解决问题的方法。 怎么样 ? 我为包含视图的布局添加了透明背景。所以它不再调整大小,它保持正确的大小。 (是的,这不合逻辑,但它确实有效)

0 个答案:

没有答案