1

ズームインとズームアウト用のカスタム ボタンを作成しました。ボタンの XML は次のとおりです。

<ImageButton
    android:id="@+id/unzoomButton"
    android:layout_width="58dp"
    android:layout_height="58dp"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="@drawable/unzoom_button"
    android:layout_marginTop="@dimen/standard_margin"
    android:layout_marginBottom="@dimen/standard_margin"
    android:scaleType="fitXY" />

<ImageButton
    android:id="@+id/zoomButton"
    android:layout_width="58dp"
    android:layout_height="58dp"
    android:layout_alignTop="@+id/unzoomButton"
    android:layout_toRightOf="@+id/unzoomButton"
    android:background="@drawable/zoom_button"
    android:scaleType="fitXY" />

ImageButton リスナーの追加:

    imgbtnZoom = (ImageButton) findViewById(R.id.zoomButton);
    imgbtnZoom.setOnClickListener(this);

    imgbtnUnzoom = (ImageButton) findViewById(R.id.unzoomButton);
    imgbtnUnzoom.setOnClickListener(this);

そして、shozuld がクリックを処理するステートメントの場合:

@Override
public void onClick(View v) {

    switch (v.getId()) {
    case R.id.button_options:
        Intent i = new Intent();
        i.setClass(this, OptionsActivity.class);
        startActivityForResult(i, OptionsActivity.REQUEST_CODE_OPTIONS_ACTIVITY);
        break;
    case R.id.button_back:
        finish();
        break;
    case R.id.zoomButton:
        CameraUpdateFactory.zoomIn();
        Log.i("TAG", "Zoom in");
        break;
    case R.id.unzoomButton:
        CameraUpdateFactory.zoomOut();
        Log.i("TAG", "Zoom out");
        break;
    }
}

ボタンのクリックが実際に機能することを確認するために、これらの 2 回のクリックにログを追加しました (実際に機能します) が、これらのボタンのいずれかをクリックしても、マップには何も起こりません。

CameraUpdateFactory.zoomIn() と CameraUpdateFactory.zoomOut() は、ズーム レベルを 1.0 ずつ変更する CameraUpdate を提供しますが、他のすべてのプロパティは同じに保ちます。

Google Maps API の公式ドキュメントには、これら 2 つの関数のいずれかを使用すると、Google マップをズームイン/ズームアウトする必要があることが明確に記載されています。それが機能するために他に何かをする必要があるとは言っていません。何か不足していますか?

4

1 に答える 1

3

ちょうど解決策を見つけました!これが私がやった方法です:

case R.id.zoomButton:
        mMap.animateCamera(CameraUpdateFactory.zoomIn());
        break;
case R.id.unzoomButton:
        mMap.animateCamera(CameraUpdateFactory.zoomOut());
        break;
于 2013-11-11T17:15:19.427 に答える