Java 如何使用片段为Android创建二维码生成器
我对android开发相对来说是新手,到目前为止,我还没有了解到碎片的用途。无论如何,我正在尝试为每个登录到我的应用程序的用户创建一个独特的二维码。该二维码由我从数据库中检索到的用户信息填充。现在我遇到的唯一问题是生成所述二维码。我已经阅读了几十篇教程,但它们常常对我的用例无效,或者我不能简单地让它们工作。我也查看了ZXING api,但这没有帮助。我请求StackoverFlow社区为这项工作提供帮助,非常感谢所有帮助。活动和片段之间的用法略有不同。它们都可以用来显示UI。要使用片段,您需要活动作为其主机,因为片段必须始终嵌入到活动中 从: 片段表示用户界面中的一个行为或一部分 活动。您可以在单个活动中组合多个片段以 构建多窗格UI并在多个活动中重用片段。你 可以将片段视为活动的模块化部分,它具有 它自己的生命周期,接收自己的输入事件,您可以 在活动运行时添加或删除(有点像“sub “活动”,可以在不同的活动中重用) 片段必须始终嵌入到活动中且片段的 生命周期直接受主机活动生命周期的影响 你需要阅读以掌握片段。创建片段的步骤(注意,这不是严格的规则):Java 如何使用片段为Android创建二维码生成器,java,android,android-fragments,qr-code,zxing,Java,Android,Android Fragments,Qr Code,Zxing,我对android开发相对来说是新手,到目前为止,我还没有了解到碎片的用途。无论如何,我正在尝试为每个登录到我的应用程序的用户创建一个独特的二维码。该二维码由我从数据库中检索到的用户信息填充。现在我遇到的唯一问题是生成所述二维码。我已经阅读了几十篇教程,但它们常常对我的用例无效,或者我不能简单地让它们工作。我也查看了ZXING api,但这没有帮助。我请求StackoverFlow社区为这项工作提供帮助,非常感谢所有帮助。活动和片段之间的用法略有不同。它们都可以用来显示UI。要使用片段,您需要活
private Bitmap textToImage(String text, int width, int height) throws WriterException, NullPointerException {
BitMatrix bitMatrix;
try {
bitMatrix = new MultiFormatWriter().encode(text, BarcodeFormat.DATA_MATRIX.QR_CODE,
width, height, null);
} catch (IllegalArgumentException Illegalargumentexception) {
return null;
}
int bitMatrixWidth = bitMatrix.getWidth();
int bitMatrixHeight = bitMatrix.getHeight();
int[] pixels = new int[bitMatrixWidth * bitMatrixHeight];
int colorWhite = 0xFFFFFFFF;
int colorBlack = 0xFF000000;
for (int y = 0; y < bitMatrixHeight; y++) {
int offset = y * bitMatrixWidth;
for (int x = 0; x < bitMatrixWidth; x++) {
pixels[offset + x] = bitMatrix.get(x, y) ? colorBlack : colorWhite;
}
}
Bitmap bitmap = Bitmap.createBitmap(bitMatrixWidth, bitMatrixHeight, Bitmap.Config.ARGB_4444);
bitmap.setPixels(pixels, 0, width, 0, 0, bitMatrixWidth, bitMatrixHeight);
return bitmap;
}
您可以找到如何创建和使用片段。但为了生成二维码,我发现了一个非常小和智能的库
示例代码:
Bitmap myBitmap = QRCode.from("www.example.org").bitmap();
ImageView myImage = (ImageView) findViewById(R.id.imageView);
myImage.setImageBitmap(myBitmap);
成功了,你是救世主。谢谢你的帮助,不客气。你可以接受这个答案来结束这个问题;)
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.your_fragment_layout, container, false);
ImageView imvQrCode = (ImageView) view.findViewById(R.id.your_image_view);
Bitmap bitmap = textToImage("your_text_info", 500, 500);
imageView.setImageBitmap(bitmap);
return view;
}
try {
Bitmap bitmap= encodeAsBitmap("Muhammad Qasim Android Developer", BarcodeFormat.QR_CODE, Width, Height);
if (bitmap!= null) {
img.setImageBitmap(bitmap);
}
} catch (WriterException e) {
Log.e(""+e,"Exception");
}
Bitmap myBitmap = QRCode.from("www.example.org").bitmap();
ImageView myImage = (ImageView) findViewById(R.id.imageView);
myImage.setImageBitmap(myBitmap);