Панорамирование видео во время выполнения - PullRequest
0 голосов
/ 22 июля 2010

Я хочу, чтобы вид двигался по экрану.Это возможно?

Другими словами, я хочу, чтобы панорамирование было возможно, и я думаю, что это как-то связано с видом.

Как вы делаете Панорамирование предварительного просмотра видео?

1 Ответ

1 голос
/ 22 июля 2010

Если вы хотите переместить ваше представление по всему экрану, это возможно. Предполагая, что это действительно ваше требование, вот что вы могли бы сделать. Сделайте вид дочерним от Relative Layout. Каждый раз, когда вы хотите переместить представление, получите RelativeLayout.LayoutParams дочернего представления, измените соответствующие поля и установите его как LayoutParam дочернего представления.

Если вы делаете это для SurfaceView (необходимого для воспроизведения видео), вы получаете обратный вызов surfaceChanged при каждом изменении поля.

Вот пример кода, который я сделал для действия CameraPreview API Demos, который делает то же самое. SurfaceView перемещается слева направо. Надеюсь, это поможет.

С уважением, Anirudh.

public class CameraPreview extends Activity {
protected static final String TAG = "CameraPreview";
private Preview mPreview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Hide the window title.
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    // Create our Preview view and set it as the content of our activity.
    mPreview = new Preview(this);
    mPreview.setId(100);
    RelativeLayout mainLayout = new RelativeLayout(this);
    RelativeLayout.LayoutParams mainLp = new RelativeLayout.LayoutParams(640, 480);
    mainLp.leftMargin = 20;

    mainLayout.addView(mPreview, mainLp);

    Button btn = new Button(this);
    btn.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            RelativeLayout.LayoutParams nLp = (LayoutParams) mPreview.getLayoutParams();
            nLp.leftMargin += 10;
            Log.v(TAG,"nLp.leftMargin: " + nLp.leftMargin);
            mPreview.setLayoutParams(nLp);
        }

    });
    btn.setText("Click me!");

    RelativeLayout.LayoutParams btnLp = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    btnLp.addRule(RelativeLayout.BELOW, mPreview.getId());

    mainLayout.addView(btn ,btnLp);
    setContentView(mainLayout);
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...