Zxing 竖屏切换 android

Zxing 竖屏切换  android

在google上下载的ZxingDemo 为横屏状态

我简单的在Androidmanifest.xml把Activity换成竖屏android:screenOrientation="portrait"

屏幕虽然正了 但是屏幕上显示的拍摄画面还是横着的

查了一些网上的资料   结合自己手工调试

在这里总结分享一下

步骤:

1)   在AndroidManifest.xml中把  <Activity  />标签  CaptureActivity 的screenOrientation修改为

android:screenOrientation="portrait"

2)  在CameraManager.java类中的getFramingRectInPreview()替换掉原先的 left right top bottom

      //竖屏
      rect.left = rect.left * cameraResolution.y / screenResolution.x;
      rect.right = rect.right * cameraResolution.y / screenResolution.x;
      rect.top = rect.top * cameraResolution.x / screenResolution.y;
      rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y; 

3)  在CameraConfigurationManager.java中void setDesiredCameraParameters(Camera camera)方法

在setParameters之前增加

camera.setDisplayOrientation(90);

4)  在DecodeHandler.java中的 decode(byte[] data, int width, int height)方法在

PlanarYUVLuminanceSource source = CameraManager.get().buildLuminanceSource(data, width, height);

之前添加:

		byte[] rotatedData = new byte[data.length];
		 for (int y = 0; y < height; y++) {
		 for (int x = 0; x < width; x++)
		 rotatedData[x * height + height - y - 1] = data[x + y * width];
		 }
		 int tmp = width; // Here we are swapping, that‘s the difference to #11
		 width = height;
		 height = tmp;
		 data = rotatedData;

5)  将CameraConfigurationManager的  initFromCameraParameters(Camera camera)方法整个替换如下

该方法防止竖屏后屏幕拉伸

	/**
	 * Reads, one time, values from the camera that are needed by the app.
	 */
	void initFromCameraParameters(Camera camera) {
		Camera.Parameters parameters = camera.getParameters();
		previewFormat = parameters.getPreviewFormat();
		previewFormatString = parameters.get("preview-format");
		Log.d(TAG, "Default preview format: " + previewFormat + ‘/‘
				+ previewFormatString);
		WindowManager manager = (WindowManager) context
				.getSystemService(Context.WINDOW_SERVICE);
		Display display = manager.getDefaultDisplay();
		screenResolution = new Point(display.getWidth(), display.getHeight());
		Log.d(TAG, "Screen resolution: " + screenResolution);

	    Point screenResolutionForCamera = new Point();
	    screenResolutionForCamera.x = screenResolution.x;
	    screenResolutionForCamera.y = screenResolution.y;   

	    // preview size is always something like 480*320, other 320*480
	    if (screenResolution.x < screenResolution.y) {
	         screenResolutionForCamera.x = screenResolution.y;
	         screenResolutionForCamera.y = screenResolution.x;
	    }

		cameraResolution = getCameraResolution(parameters, screenResolutionForCamera);
//		cameraResolution = getCameraResolution(parameters, screenResolution);
		Log.d(TAG, "Camera resolution: " + screenResolution);
	}

至此Zxing 横屏就切换为竖屏

不足之处请在下方留言  谢谢

希望对您有用

资源下载地址

http://download.csdn.net/detail/aaawqqq/7278133

Zxing 竖屏切换 android,布布扣,bubuko.com

时间: 2024-10-26 17:26:45

Zxing 竖屏切换 android的相关文章

【转】Android 模拟器横屏竖屏切换设置

http://blog.csdn.net/zanfeng/article/details/18355305# Android 模拟器横屏竖屏切换设置时间:2012-07-04   来源:设计与开发   作者:Daniel   点击:5571 摘要:  Android 模拟器旋转,横屏.竖屏切换设置,android 横屏布局,android 横屏模式,android 模拟器,android 模拟器横屏,android 模拟...       Android 模拟器旋转,横屏.竖屏切换设置,andr

Cocos2d-x在Android在竖屏切换

在Cocos2d-x在,屏幕类型的默认设置是横屏,当我们需要切换到肖像,能够在项目目录打开proj.android目录.找到AndroidManifest.xml文件,直接打开,然后就可以看到里面:screenOrientation="landscape",这表示将屏幕设置成了横屏:将它改成:screenOrientation="portrait",此,屏幕变成竖屏切换. 版权声明:本文博客原创文章,博客,未经同意,不得转载.

android 模拟器 横屏 竖屏切换

1.android 模拟器 横屏 竖屏切换 快捷方式:ctrl+F11 2.eclipse 开发使UI设计界面横屏显示

Android横屏竖屏切换的问题

一.禁止横竖屏转换 Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为了避免横竖屏切换时引发不必要的麻烦,通常禁止掉横竖屏的切换, 通过在AndroidManifest.xml中设置activity中的android:screenOrientation属性值来实现. 比如下列设置 android:screenOrientation="portrait" 则无论手机如何变动,拥有这个属性的activity都将是竖屏显示. android:screenOrientatio

android-----横竖屏切换对Activity生命周期的影响

前面我们分析过Activity的生命周期(见:android-----Activity生命周期),但是在现实应用中我们可能会对手机进行横竖屏切换,那么这样的切换对Activity的生命周期有什么影响呢? 先来看看实例: public class Activity1 extends Activity{ public Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreat

android手机横屏和竖屏与android:configChanges

原文地址:http://woshixy.blog.51cto.com/5637578/1081913 目前大多数手机都支持重力感应随之而来的就是屏幕方向改变的问题.对应普通开发者来说屏幕的随意改变也会带来困扰.在Google自带的doc里可以看到,如果设备的配置(Resources.Configuration中进行了定义)发生改变,那么所有用户界面上的东西都需要进行更新以适应新的配置.因为Activity是与用户交互的最主要的机制,它包含了处理配置改变的专门支持.除非你特殊指定,否则当配置发生改

移动端 竖屏切换横屏时候字体变大

最近遇到ios设备竖屏切换到横屏时候,字体会发生变化的情况.用以下方法可以解决此类问题 -webkit-text-size-adjust : none ; -moz-text-size-adjust : none ; -ms-text-size-adjust : none ; text-size-adjust : none 这样就能禁止当手机由竖屏转向横屏的时内容中的文字自动调整大小,各浏览器下的私有属性为-webkit-text-size-adjust,-moz-text-size-adjus

android Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化

生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情.例举了 7 个常用的钩子:protected void onCreate(Bundle savedInstanceState)protected void onStart()protected void onResume()protected void onPause()protected void onStop()protected void onRestart()protecte

Android-横竖屏切换问题(转)

先附上链接:http://www.cnblogs.com/xiaoQLu/p/3324503.html 项目要求要做横竖屏,发现横屏的时候,生命周期函数会乱执行,网上找了一大堆资料. 结果如下: 只需要配置以下属性即可实现横竖屏切换的时候不重新执行生命周期,也就是不会执行onDestroy,然后再onCreate等. android:configChanges="orientation|keyboardHidden" 结果很失望,因为项目里面本来就已经是这样配置的了.坑爹的是:说好切换