Pet*_*der 8 android orientation barcode-scanner zxing
我在MainActivity.kt那里展示了不同需求的不同片段.在某些时候,我按下调用startScanner()功能的按钮'X' :
private fun startScanner() {
IntentIntegrator(this)
.setOrientationLocked(false)
.setPrompt("SCANNING?")
.initiateScan()
}
Run Code Online (Sandbox Code Playgroud)
Manifest.xml:
<activity
android:name=".MainActiity"
android:theme="@style/AppTheme"
tools:replace="android:screenOrientation"
android:stateNotNeeded="true"
android:screenOrientation="fullSensor"
android:windowSoftInputMode="stateHidden" />
Run Code Online (Sandbox Code Playgroud)
Gradle.file:
compile 'com.journeyapps:zxing-android-embedded:3.6.0'
Run Code Online (Sandbox Code Playgroud)
它确实打开扫描仪和一切,但在横向模式.
为什么这不起作用?
有一个捷径可以做到这一点。只需将其添加到清单中:
<activity
android:name="com.journeyapps.barcodescanner.CaptureActivity"
android:screenOrientation="portrait"
tools:replace="android:screenOrientation"
android:stateNotNeeded="true"/>
Run Code Online (Sandbox Code Playgroud)
除了这个答案/sf/answers/2482617791/
我找到了改变方向的方法zxing我找到了当设备方向改变时自动
试试这个方法
捕捉活动肖像
public class CaptureActivityPortrait extends CaptureActivity {
//Nothing in side.
}
Run Code Online (Sandbox Code Playgroud)
CaptureActivityPortrait在清单文件中
<activity
android:name=".CaptureActivityPortrait"
android:stateNotNeeded="false"
android:theme="@style/zxing_CaptureTheme"
android:windowSoftInputMode="stateAlwaysHidden"/>
Run Code Online (Sandbox Code Playgroud)
在您的活动中使用这种方式
public class MyActivity extends AppCompatActivity {
IntentIntegrator qrScan;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
qrScan = new IntentIntegrator(this).setCaptureActivity(CaptureActivityPortrait.class);
qrScan.setOrientationLocked(false);
qrScan.initiateScan();
}
}
Run Code Online (Sandbox Code Playgroud)