Мое приложение должно содержать поверхность предварительного просмотра камеры. Камера фиксируется в альбомной ориентации через AndroidMainfest.xml
<application android:icon="@drawable/icon"
android:label="Camera">
<uses-library android:name="com.google.android.maps" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<activity android:name=".CameraPreview"
android:label="Camera"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Если есть другой способ заставить сам предварительный просмотр камеры вести себя правильно, пожалуйста, дайте мне знать.
Теперь мне нужно иметь оверлей, содержащий несколько кнопок. Из-за удобства использования пользовательский интерфейс должен быть установлен в книжной ориентации (или даже лучше ориентирован на ориентацию).
Есть ли способ иметь прозрачный макет (для кнопок и других элементов графического интерфейса) в портретной ориентации?
Я попытался написать специальный повернутый макет, расширив RelativeLayout, но метод onDraw не вызывается в любое время.
public class RotatedOverlay extends RelativeLayout {
private static final String TAG = "RotatedOverlay";
public RotatedOverlay(Context context, AttributeSet attrs ) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.rotate(90);
super.onDraw(canvas);
}
Я довольно новичок в программировании платформы Android. Конечно, я пока не очень разбираюсь в хитростях и обходных путях программирования. За последние две недели я провел много исследований (даже изучал собственную реализацию Camera), но пока не смог найти хорошего решения.
Может быть, это работает с двумя отдельными видами деятельности, но я не думаю, что это может быть правильным решением.