[英]How to replicate Androids stock camera orientation change
我有三星 Edge、API 24、Android 7.0 和三星平板電腦、API 24、Android 7.0。
如果您不想了解背景故事,請跳過此塊引用部分:
我想重新創建庫存相機並將其實現到我的應用程序中。 我實際上非常接近完成它(使用 Xamarin.Android + C#),使用Google Camera Sample的Xamarin 版本。
然而,仍然存在方向問題...... 180° 旋轉(橫向 -> 反向陸地空間或反之亦然)不會觸發“SurfaceChanged”事件,該事件用於設置表面的矩陣以使其正確顯示。
我見過不同的方法,一種似乎很穩定:將方向固定為橫向並自己處理方向。
查看我的兩個設備的庫存相機,我看到相機預覽從不移動一點,只有按鈕旋轉 + 活動(狀態欄在方向改變時移動到頂部)如何實現這種行為?
一個抽象的想法,或者 Java 或 C# 中的代碼片段會很好。
修復開始時的活動方向(例如,在onResume
方法中):
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
在AndroidManifest.xml
中指定您希望活動偵聽方向更改:
<activity
android:configChanges="keyboardHidden|orientation|screenSize"
...
然后處理活動內部的方向變化:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// rotate buttons using newConfig.orientation value
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.