1

我要获取的是地图快照,但来自用户不可见的布局,因此我只能向用户显示快照,而不是实际的创建过程。如果我尝试从可见性设置为不可见的布局中获取它,我会收到此错误:

**java.lang.IllegalArgumentException: width and height must be > 0
        at android.graphics.Bitmap.createBitmap(Bitmap.java:695)**

布局xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map_holder"
android:orientation="vertical"
android:layout_width="200dp"
android:layout_height="200dp"
android:visibility="invisible">

    <fragment
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/map"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        map:uiRotateGestures="false"
        class="com.vodafone.glympseplugin.maps.Map" />

这是 onCreate() 中的代码:

    Bitmap mapBitmap = Bitmap.createBitmap(200,200,Bitmap.Config.ARGB_8888);

    SupportMapFragment mapfragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
    GoogleMap map = mapfragment.getMap();

    map.snapshot(this, mapBitmap);

显然,问题在于地图片段尚未膨胀和测量。如何解决这个问题,从不可见的地图创建位图?

我还尝试在片段的父 ViewGroup 上调用 layout(...) 和 measure(...) 但结果是相同的。

4

0 回答 0