http.//124.163219.201

2020-07-30   来源:经典阅读

Android Gallery3D源码学习小结
篇一:http.//124.163219.201

Android自定义照相机实现(拍照、保存到SD卡,利用Bundle在Acitivity交换数据)

分类: 【Android多媒体开发系列】 【Android开发学习之路】 2013-05-14 21:36 12172人阅读 评论(14)

收藏 举报

ANDROID

Android自定义照相机实现

近期小巫在学校有一个创新项目,也不是最近,是一个拖了很久的项目,之前一直没有去搞,最近因为要中期检查,搞得我跟小组成员一阵忙活,其实开发一款照相机软件并不太难,下面就是通过自定义的方式来实现手机照相的功能。

创建一个项目:FingerTakePicture

首先来搞一下界面:

[html] 1. <FrameLayout xmlns:android="

2. xmlns:tools="

3. android:id="@+id/FrameLayout1"

4. android:layout_width="match_parent"

5. android:layout_height="match_parent" >

6. <!-- 显示预览图形 -->

7. <SurfaceView

8. android:id="@+id/surfaceView"

9. android:layout_width="match_parent"

10. android:layout_height="match_parent"

11. />

12. <!-- 相对布局,放置两个按钮 -->

13. <RelativeLayout

14. android:id="@+id/buttonLayout"

15. android:layout_width="wrap_content"

16. android:layout_height="wrap_content"

17. android:visibility="gone"

18. >

19. <!-- 拍照按钮 -->

20. <Button

21. android:id="@+id/takepicture"

22. android:layout_width="wrap_content"

23. android:layout_height="wrap_content"

24. android:layout_alignParentRight="true"

25. android:layout_alignParentBottom="true"

26. android:background="@drawable/btn_tabkepicture_selector"

27. android:onClick="btnOnclick"

28. />

29. <ImageView

30. android:id="@+id/scalePic"

31. android:layout_width="wrap_content"

32. android:layout_height="wrap_content"

33. android:layout_alignParentLeft="true"

34. android:layout_alignParentBottom="true"

35. android:layout_marginLeft="5dp"

36. android:background="@drawable/img_showpic_selector"

37. android:onClick="imageClick"

38. />

39. </RelativeLayout>

40. </FrameLayout>

界面效果(无法把预览给截屏下来滴):

权限设置少不了:

[html]

1. <manifest xmlns:android="

2. package="com.wwj.finger"

3. android:versionCode="1"

4. android:versionName="1.0" >

5.

6. <uses-sdk

7. android:minSdkVersion="4"

8. android:targetSdkVersion="15" />

9.

10. <uses-permission android:name="android.permission.CAMERA" />

11. <!-- 在SDCard中创建与删除文件权限 -->

12. <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYST

EMS" />

13. <!-- 往SDCard写入数据权限 -->

14. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE

" />

15. <application

16. android:icon="@drawable/ic_launcher"

17. android:label="@string/app_name" 18. android:theme="@style/AppTheme" >

19. <activity

20. android:name=".MainActivity"

21. android:label="@string/title_activity_main"

22. >

23. <intent-filter>

24. <action android:name="android.intent.action.MAIN" /> 25.

26. <category android:name="android.intent.category.LAUNCHER" />

27. </intent-filter>

28. </activity>

29. <activity

30. android:name=".ShowPicActivity"

31. android:label="@string/app_name"

32. android:theme="@style/AppTheme"

33. android:configChanges="orientation|keyboardHidden"

34. ></activity>

35. </application>

36.

37. </manifest>

主Activity:

[java] copyprint?

1. package com.wwj.finger;

2.

3. import java.io.File;

4. import java.io.FileOutputStream;

5. import java.io.IOException;

6. import java.text.SimpleDateFormat;

7. import java.util.Date;

8.

9.

10. import android.app.Activity;http.//124.163219.201。

11. import android.content.Intent;

12. import android.graphics.PixelFormat;

13. import android.hardware.Camera;

14. import android.hardware.Camera.PictureCallback;

15. import android.os.Bundle;

16. import android.os.Environment;

17. import android.view.KeyEvent;

18. import android.view.MotionEvent;

19. import android.view.Surface;

20. import android.view.SurfaceHolder;

21. import android.view.SurfaceHolder.Callback;

22. import android.view.SurfaceView;

23. import android.view.View;

24. import android.view.ViewGroup;

25. import android.widget.Toast;

26.

27. /**

28. * Android手指拍照

29. *

30. * @author wwj

31. * @date 2013/4/29

32. */

33. public class MainActivity extends Activity {

34. private View layout;

35. private Camera camera;

36. private Camera.Parameters parameters = null;

37.

38. Bundle bundle = null; // 声明一个Bundle对象,用来存储数据 39.

40. @Override

RS编码和纠错算法
篇二:http.//124.163219.201

Data Matrix将有效信息(数字字母等)编码成0~255内的数字表示 (编码方式参考:)。为了及时发现数据传输时的错误,使用RS编解码来进行错误检测校验。RS码可以看成伽罗华域GF(2^m)上的元素,dm码的元素0~255正好对应伽罗华域GF(2^8)上的256个元素。通过编码时添加冗余信息,可以有效校验数据是否正确传输。

以下为文献概要:

1) 介绍如何生成GF(2^m)域,伽罗华域的加法运算为异或运算,乘法运算为指数相加后

mod(2^m)。

2) 实例分析如何编码及纠错。(实际上就是求解多项式方程组的过程,在实际工程算法中

运用到的钱氏搜索法(Chien Search),Berlekamp-Massey 算法都是为了快速求解方程组,从而纠错)。http.//124.163219.201。

3) 附录部分为GF(2^8)上的元素列表。

13.2 RS编码和纠错算法

13.2.1. GF(2)域

RS(Reed-Solomon)码在伽罗华域(Galois Field,GF)中运算的,因此在介绍RS码之前先简要介绍一下伽罗华域。

CD-ROM中的数据、地址、校验码等都可以看成是属于GF(2) = GF(2)中的元素或称符号。

8

GF(2)表示域中有256个元素,除0,1之外的254个元素由本原多项式P(x)生成。本原多

m

8

m

项式的特性是得到的余式等于0。CD-ROM用来构造GF(2)域的

8

(13-1)

而GF(2)域中的本原元素为 α = (0 0 0 0 0 0 1 0)

下面以一个较简单例子说明域的构造。

8

[例13.1] 构造GF(2)域的本原多项式

3

假定为

α定义为

3

= 0的根,即

α+α+

1 = 0

和 α = α+1

GF(2)中的元素可计算如下:

0 α α α α α α α α α ……

876543210

3

3

mod(α+α+1) = 0 mod(α+α+1) = α = 1 mod(α+α+1) = α mod(α+α+1) = α mod(α+α+1) = α+1 mod(α+α+1) = α+α mod(α+α+1) = α+α+1 mod(α+α+1) = α+1 mod(α+α+1) = α mod(α+α+1) = α

3

1

3

3

2

3

2

1

3

2

33

2

3

1

3

3

用二进制数表示域元素得到表13-01所示的对照表

表13-01 GF(2)域中与二进制代码对照表, 3

3

这样一来就建立了GF(2)域中的元素与3位二进制数之间的一一对应关系。用同样的方法

http.//124.163219.201。

8

可建立GF(2)域中的256个元素与8位二进制数之间的一一对应关系。在纠错编码运算过

3

程中,加、减、乘和除的运算是在伽罗华域中进行。现仍以GF(2)域中运算为例:

加法例:α+α = 001+011 = 010 = α 减法例:与加法相同

10

3

乘法例:α·α = α= α

2

54(5+4)mod7

除法例:α/α = α α/α = α= α

(-2+7)3

5

-2

532

= α

取对数:log(α) = 5

这些运算的结果仍然在GF(2)域中。

13.2.2 RS的编码算法

3

5

5

RS的编码就是计算信息码符多项式

m

除以校验码生成多项式之后的余数。

在介绍之前需要说明一些符号。在GF(2)域中,符号(n,k)RS的含义如下:

m n k t

表示符号的大小,如m = 8表示符号由8位二进制数组成 表示码块长度, 表示码块中的信息长度 表示能够纠正的错误数目

K=n-k = 2t 表示校验码的符号数

例如,(28,24)RS码表示码块长度共28个符号,其中信息代码的长度为24,检验码有4个检验符号。在这个由28个符号组成的码块中,可以纠正在这个码块中出现的2个分散的或者2个连续的符号错误,但不能纠正3个或者3个以上的符号错误。

对一个信息码符多项式,RS校验码生成多项式的一般形式为

(13-2)

式中,m0是偏移量,通常取K0 = 0或K0 = 1,而(n-k)≥2t (t为要校正的错误符号数)。 下面用两个例子来说明RS码的编码原理。

[例13.2] 设在GF(2)域中的元素对应表如表13-01所示。假设(6,4)RS码中的4个信息

3http.//124.163219.201。

符号为m3、m2、m1和m0,信息码符多项式为

(13-3)

并假设RS校验码的2个符号为Q1和Q0,的剩余多项式为

这个多项式的阶次比

的阶次少一阶。

如果K0 = 1,t = 1,由式(13-2)导出的RS校验码生成多项式就为

= (13-4)

根据多项式的运算,由式(13-3)和式(13-4)可以得到 m3x+m2x+m1x+m0x+Q1x+Q0 = (x-α)(x-α)Q(x) 当用x = α和x = α代入上式时,得到下面的方程组,

2

5

4

3

2

2

经过整理可以得到用矩阵表示的(6,4)RS码的校验方程:

求解方程组就可得到校验符号:

在读出时的校正子可按下式计算:

[例13.3] 在例13.2中,如果K0 = 0,t = 1,由式(13-2)导出的RS校验码生成多项式就为

= (13-5)

根据多项式的运算,由(13-3)和(13-5)可以得到下面的方程组:

方程中的α也可看成符号的位置,此处i = 0,1,…,5。 求解方程组可以得到RS校验码的2个符号为Q1和Q0,

i

(13-6)

假定mi为下列值:

代入(13-6)式可求得校验符号:

Q1 = α = 101

6

http.//124.163219.201

http://m.myl5520.com/shiyonggongju/116030.html

展开更多 50 %)
分享

热门关注

小学红色经典阅读主题活动方案范文(通用4篇)

经典阅读

经典阅读活动方案范文汇总十一篇

经典阅读

国学经典阅读心得体会范文五篇

经典阅读

国学经典阅读心得1000字三篇

经典阅读

红色经典阅读心得体会汇编9篇

经典阅读

红色经典阅读会心得体会范文(通用6篇)

经典阅读

关于2023年小学经典阅读活动方案优秀【七篇】

经典阅读

2023年经典阅读班会诵国学经典班会活动方案集合4篇

经典阅读

班级经典阅读实施方案(通用6篇)

经典阅读

经典阅读征文方案精选三篇

经典阅读