Tienes la opción de fijar las posiciones en el manifiest.xml. Si lo quieres hacer de forma dinámica, por ejemplo dandole a un botón, o en función de determinadas condiciones ( tamaño de la pantalla, resolución... ) puedes usar el siguiente método dentro de una Activity:
Código:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Con
Código:
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
int orientation = display.getRotation();
puedes obtener la orientación de la pantalla. Juntando ambas, puedes hacer un bonito switch que cuando se ponga en una posición no deseada, fuerces a la que tu quieras. Todo esto tienes que hacerlo en en el onChangedSettings de una Acivity.
Salu2!!