当前位置:首页 » 安卓系统 » android二维码生成

android二维码生成

发布时间: 2023-10-11 05:35:10

‘壹’ android zbar能不能生成二维码

ZBarReaderViewController *reader = [ZBarReaderViewController new];

reader.readerDelegate = self;

reader.sourceType = ;
这个地方可以设置sourceType,有三种:
// , 打开所有照片 获取二维码

// , 打开摄像头 获取二维码

// 打开相册 获取二维码

你可以自己选择

‘贰’ 在android中使用googlezxing实现二维码

先打开本地下载,复制文件,拷贝到他们的项目中即可。
首先我们打开google的zxing的地址,googledezxing地址(本地下载),打开之后我们会看到界面,将这个文件下载我们本地,下载好之后我们需要复制android文件下的几个类,根据这些类名称在android文件下找到这些类,拷贝到他们的项目中,拷贝之后会有报错,我们需要将android文件下的res中的文件也拷贝到我们的项目中。完成之后我们还要依赖zxing的核心类库,当我们的项目不报错的时候,就可以先实现扫描二维码和生成二维码。

‘叁’ android如何将一个字符串生成二维码

二维码应用有一个很有名的开源项目ZXing。从它的官网下载Demo,我们需要的是~\ZXingDemo\libs\zxing.jar,这是ZXing的库,开始!
首先是AndroidMainfest.xml,要注册activity:
<activity android:name="com.cleaderwin.home.dp." />

还要有相关操作权限:
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >
</uses-permission>
<uses-permission android:name="android.permission.CAMERA" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>

然后是.xml:
<ImageView
android:id="@+id/imageView"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"/>

剩下VideoActivity:
import java.util.Hashtable;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;

public class VideoActivity extends Activity {
private int QR_WIDTH;
private int QR_HEIGHT;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video);
createQRImage("http://www..com");
}
}

// 要转换的地址或字符串,可以是中文
public void createQRImage(String url) {
ImageView img = (ImageView)findViewById(R.id.imageView);
QR_WIDTH = 300;
QR_HEIGHT = 300;
// 判断URL合法性
if (url == null || "".equals(url) || url.length() < 1) {
return;
}
Hashtable<EncodeHintType, String> hints = new Hashtable<EncodeHintType, String>();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
// 图像数据转换,使用了矩阵转换
BitMatrix bitMatrix = null;
try {
bitMatrix = new QRCodeWriter().encode(url, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints);
} catch (WriterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int[] pixels = new int[QR_WIDTH * QR_HEIGHT];
// 下面这里按照二维码的算法,逐个生成二维码的图片,
// 两个for循环是图片横列扫描的结果
for (int y = 0; y < QR_HEIGHT; y++) {
for (int x = 0; x < QR_WIDTH; x++) {
if (bitMatrix.get(x, y)) {
pixels[y * QR_WIDTH + x] = 0xff000000;
} else {
pixels[y * QR_WIDTH + x] = 0xffffffff;
}
}
}
// 生成二维码图片的格式,使用ARGB_8888
Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT, Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT);
// 显示到一个ImageView上面
img.setImageBitmap(bitmap);
}
}

热点内容
php函数参数的传递参数 发布:2024-11-30 14:32:00 浏览:504
安卓手机怎么联系汽车 发布:2024-11-30 14:12:00 浏览:648
python代码性能 发布:2024-11-30 14:11:57 浏览:678
php变量是否存在 发布:2024-11-30 13:53:00 浏览:954
数组下标过大编译错误吗 发布:2024-11-30 13:52:51 浏览:639
检测5g信号密码是多少 发布:2024-11-30 13:52:51 浏览:258
c语言实现复数运算 发布:2024-11-30 13:30:17 浏览:768
安卓手机要怎么下载突击队ol 发布:2024-11-30 13:03:42 浏览:637
修改密码sql语句 发布:2024-11-30 12:54:54 浏览:156
搭建手游用什么服务器 发布:2024-11-30 12:54:09 浏览:171