我对android开发相对较新,至今我还没有拿起碎片的目的。无论如何,我正在尝试为创建一个唯一的QR码,以便每位登录到我的应用的用户登录。这个QR码是,用户信息我从数据库中检索到。现在我遇到的唯一的问题是是上述qr代码的产生。我浏览了几十个教程,但通常它们对我的用例来说是无效的,或者我不能简单地让它们工作。我也浏览了ZXING api,但那没有帮助。我请求StackoverFlow社区帮助这个努力,所有帮助表示赞赏如何使用碎片为Android创建QR码生成器
0
A
回答
0
Activity和Fragment之间的使用略有不同。他们都可以用来显示用户界面。要使用片段,您需要将“活动”作为其宿主,因为片段必须始终嵌入活动中。
甲片段表示行为或在 活动的用户界面的一部分。您可以在单个活动中合并多个片段到 构建多窗格用户界面并在多个活动中重复使用片段。您可以将某个片段视为活动的模块化部分,该活动在其自身的生命周期中拥有 ,接收自己的输入事件,并且可以在活动运行时添加或删除哪些内容(有点像“sub ”活动“你可以在不同的活动中重复使用)。
片段必须始终嵌入到活动中,片段的生命周期直接受宿主活动生命周期的影响。
您需要阅读Building a Dynamic UI with Fragments掌握碎片。步骤来创建一个片段(注意,这不是一个严格的规则):
- 创建活动作为东道主
- 创建活动的布局。在其中,您需要创建一个FrameLayout视图作为片段持有者。
- 通过延伸片段类
- 为片段
- 创建UI布局通过使用FragmentTransaction
现在创建QR码部分附上片段到活动创建片段。您需要确定需要在QR码中显示哪些信息。不要在QR码中提供所有信息,因为您不能将所有用户数据公开给全世界。如果您有超过1个字符串的信息,您可以使用“;”或其他任何加入文本信息。
要构建QR码图像,首先,您需要在应用程序构建中使用以下行包含ZXing library。gradle这个(使用latest version):
compile 'com.google.zxing:core:3.3.0'
然后用下面的代码创建的QR码位图:
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;
}
这时你可以用它来设置生成的图像到您的ImageView与您的片段像这样:
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;
}
相关问题
- 1. 使用API构建QR码生成器
- 2. 使用PHP QR码生成器在PHP中创建QR码与中心徽标
- 3. 如何在Android中创建自己的QR生成器?
- 4. 使用Java在Android中生成QR码
- 5. 使用codenameone生成QR码
- 6. 如何使用Android碎片?
- 7. 生成QR码
- 8. 使用Coldfusion创建QR码
- 9. 使用TAB键生成QR码
- 10. 从碎片生成器返回花车
- 11. 用android创建qr阅读器
- 12. 如何在iPhone中生成QR码?
- 13. 如何在Android中创建碎片应用程序?
- 14. 如何使用我的iPhone/iPad应用程序生成QR码?
- 15. 使用ColdFusion创建QR代码
- 16. Android:使用QRGen lib生成QR码时出错
- 17. 如何在.Net中使用库生成QR码
- 18. 如何使用zxing库文件生成65 * 65 Qr代码?
- 19. 如何使用velocity模板生成QR码
- 20. 如何使用“潜台词”自动生成QR码
- 21. 如何在Laravel 5.2中创建QR码?
- 22. 使用android碎片数组
- 23. 在android中生成设计器2d QR码
- 24. 使用Java将QR代码生成为可缩放的EPS
- 25. 用Xamarin.Forms和Zxing生成QR码
- 26. 用于生成QR码的JavaScript API
- 27. QR代码,可以用R生成?
- 28. 如何使用Java创建设计QR码?
- 29. 如何使用公司徽标创建QR码图像
- 30. 如何使用PHP在字节模式下创建QR码?
它的工作,你是一个救世主。感谢您的全力帮助 – saj5211
非常欢迎。你可以接受这个答案,然后关闭这个问题;) –