首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android camera(四)

2012-07-30 
android camera(4)先说说我的测试机器:nexus s。以下的结果都是通过nexus s上测试通过。这次先说说步骤:下载

android camera(4)

先说说我的测试机器:nexus s。以下的结果都是通过nexus s上测试通过。


这次先说说步骤:下载zxing2.0,里面的core有个core.jar这个有用,将它引用到你的工程下。接着在目录android\src\com\google\zxing\client\android\PlanarYUVLuminanceSource.java,将它复制到你的工程的src文件夹下,记得改了它的包名。准备工作就完成了。然后就上代码:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >  <RelativeLayout  android:layout_width="fill_parent"  android:layout_height="wrap_content" android:layout_weight="1" ><SurfaceView android:id="@+id/preview_view" android:layout_width="fill_parent" android:layout_height="fill_parent"android:screenOrientation="landscape" /></RelativeLayout><Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button></LinearLayout>
这样的布局导致不能知道surfaceview的大小,但是surfaceview比较大,所以必须要设定surfaceView.getHolder().setFixedSize(352, 288);我还操蛋的发现parameters.setPreviewSize(width, height); 根本不起作用的,所以还是不设定好,直接设定surfaceview。然后我将surfaceview设定成352*288,这个surfaceview就太小了而且所得到的灰度图大概只能surfaceview的一半大,所以解码永远不成功的,于是我去看了类PlanarYUVLuminanceSource的构造函数,但是不知所云。我猜想,因为源程序是满屏幕只取中间那个很小的view的灰度图,所以我的小surfaceview被活生生的截图了(本来就刚刚好找到条形码),所以解码不成功。更多发现留给大家了。所以我直接将surfaceview放得大大好了。


接下来我的android camera系列就结束了(我留给自己的工作是实现跟源程序一样的界面)。这次让我感慨良多。这个是我第一次写这样的文章,发觉是超级难写。因为你要尽量保证你的准确性还要描述清楚(我知道我的表达能力十分有限),那么就不得不做大量的尝试,查看大量的资料(我花了一个多星期吧,才开始接触android两个星期左右)。


附上demo:android camera(4)



警告:android camera系列的文章是由一个刚接触android不到一个月的菜鸟所写,所以必然存在很多错误,请大家指出




热点排行