2

私はこの表面図を手に入れました

<SurfaceViewandroid:id="@+id/videoview"android:layout_width="720px"android:layout_height="480px"/>

サイズを自動的に表示サイズに設定する方法を教えてください。すべての Android フォンには別のディスプレイ サイズがあるためですか?

ありがとう!

4

2 に答える 2

1

これを xml で定義していますか? 次にandroid:layout_width="fill_parent"、親コンテナで同じものを使用します:)

それ以外の場合は、プログラムでこれを行う場合は @Shark の回答を参照してください

于 2012-07-30T09:49:58.797 に答える
1

you'll have to catch it in onSurfaceCreated() and try to resize it there...

  private class surfaceCallback implements SurfaceHolder.Callback
{
    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
    {
        if (holder == videoHolder)
        {
            Log.e(TAG, "video surfaceChanged: f: " + format + ", w: " + width + ", h: " + height);

            //resize it here maybe?
        } else
        {
            Log.e(TAG, "Unknown surface: f: " + format + ", w: " + width + ", h: " + height);
            assert (false);
        }
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder)
    {
        Log.e(TAG, "surfaceCreated");
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder)
    {
        Log.e(TAG, "surfaceDestroyed");
    }
}

one possible way to get your display size...

    //measured android resolution
    WindowManager win = (WindowManager) getApplicationContext().getSystemService(WINDOW_SERVICE);
    Display d = win.getDefaultDisplay();
    Point measuredResolution = new Point();
    d.getSize(measuredResolution); //measuredResolution now holds actual size.
于 2012-07-30T09:47:15.353 に答える