好多人问这个问题,其实我也没有搞得太懂,只是我最近也用了,我只是搜索了别人的答案,我还是用别人的jar吧,对于一些特殊汉字 还需要预处理,网上也有 ,只要你善于搜就可以了,如java获取汉语拼音首字母等等
我用的是pinyin4j.jar 附件里面有 也可以从 http://pinyin4j.sourceforge.net/ 下载,至于怎么用网上一堆 自己搜吧
as http://wister.iteye.com/blog/334562
http://blog.csdn.net/songylwq/archive/2010/11/24/6032315.aspx and so on
源地址:http://blessdyb.iteye.com/blog/358235
看了一下,其实Zxing支持iPhone的,不错先mark下来吧。
//***************************************************
简介
最近的Widget项目用到需要用摄像头来处理条形码,章师兄推荐了ZXing这个开源的项目,于是做一简单的调研。
ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。
当前,ZXing主要支持以下条形码:
•UPC-A and UPC-E
•EAN-8 and EAN-13
•Code 39
•Code 128
•QR Code
•Data Matrix ('alpha' quality)
•ITF
首先,在http://code.google.com/p/zxing/上下载到ZXing的应用程序包,解压下载到的程序包后,我们可以看到整个应用程序分为一些组件。如下:
1.core: 核心包,是整个应用的主要组件组成部分。
2.javame: 为JavaME来定制的客户端工具。
3.javase: 为PC端定制的客户端工具。
4.android: 为Android端定制的客户端工具。
5.androidtest: Android测试应用程序,里面有在其它程序中使用此应用的示例。
基本测试
ZXing程序的运行需要我们使用Ant去打包编译之后才可。在这里,我主要调研了在PC端,在WTK上及android上的运行。
1.PC端使用Java应用程序调试
首先,Build一下core与javase两个包,如下:
编译完毕后,我们来运行程序,如下:
运行后会弹出一个文件选择器,我们选取事先准备好的一张条形码图后,可以看出,对于给出的条形码图,程序将其读出到图片下的一个标签中。
2.在NOKIA N82上程序调试
首先,我们得保证我们的机器已经安装了WTK。之后,我们必须下载Proguard (http://proguard.sourceforge.net/downloads.html)到本地,将其中的proguard.jar拷备到WTK的bin目录下,修改zxing根目录下的build.properties文件中的wtk-home属性就可以了(注意,对于windows环境中使用,目录分隔符为两个斜杠)之后可以开始编译:
在编译之后,会在zxing的javame目录下生成一个BarcodeReader.jar与BarcodeReader.jad文件。我们直接双击jad文件就可以在WTK模拟器中使用了。
3.在Android模拟器上程序调试
首先,我们得保证我们机器有有现成的Andorid SDK。同时保证在WTK的bin目录下存在proguard.jar,并在build.properties中配置了wtk-home与android-home属性,之后开始编译程序:
程序编译完成之后,就会在android下的bin目录中生成一个BarcodeScanner-debug.apk程序,我们可以使用Android模拟器为我们提供的adb工具来完成测试。执行:
创建Main类:
package com.action; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class Main extends Activity { private Button bt; private TextView tv; private ImageView image; String uriPic = "http://image.techweb.com.cn/upload/2011/0201/img20110212964974010.jpg"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bt = (Button) findViewById(R.id.myButton1); tv = (TextView) findViewById(R.id.myTextView1); image = (ImageView) findViewById(R.id.myImageView1); bt.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View arg0) { //设置Bitmap在IMageView中 image.setImageBitmap(getURLBitmap()); tv.setText(""); } }); } public Bitmap getURLBitmap() { URL imageUrl = null; Bitmap bitmap = null; try { //new Url对象,将网址传入 imageUrl = new URL(/blog_article/uriPic/index.html); //取得连接 HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection(); conn.connect(); //取得返回的InputStream InputStream is = conn.getInputStream(); //将InputStream变成Bitmap bitmap = BitmapFactory.decodeStream(is); //关闭InputStream is.close(); } catch (IOException e) { e.printStackTrace(); } return bitmap; } }
layout配置文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/white" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/myTextView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/app_name"/> <Button android:id="@+id/myButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/str_button1" /> <ImageView android:id="@+id/myImageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </LinearLayout>
values 中的color:
<?xml version="1.0" encoding="utf-8"?> <resources> <drawable name="darkgray">#808080FF</drawable> <drawable name="white">#FFFFFFFF</drawable> </resources>
values 中的string:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World</string> <string name="app_name">即时访问网络图片</string> <string name="str_button1">显示网络上的图片</string> </resources>
最后不要忘记配置访问网络权限