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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android如何将一个字符串生成二维码相关的知识,希望对你有一定的参考价值。

参考技术A 二维码应用有一个很有名的开源项目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.baidu.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);

以上是关于android如何将一个字符串生成二维码的主要内容,如果未能解决你的问题,请参考以下文章

android 生成的二维码图片如何保存到sdcard?

Android二维码生成

android 生成的二维码图片如何保存到sdcard? 这个我也不知道呢,能否告知

如何将文件生成二维码

怎样生成网站二维码?

Kotlin-为Android项目生成Doc文档