Zxing生成二维码 条形码
来源:互联网 发布:法文翻译软件 编辑:程序博客网 时间:2024/06/02 23:04
我是一个安卓新手 第一次写博客今天项目里面有个需求,需要动态生成一个条形码,于是 我想到了Zxing 这个开源框架。废话不多说,现在先来看代码
这是布局文件
接下来是代码
public class MainActivity extends AppCompatActivity {
private EditText mEtInput;
private Button mBtOneCode;
private Button mBtTwoCode;
private ImageView mIvCode;
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initListener();}private void initListener() { mBtTwoCode.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String strs =mEtInput.getText().toString().trim(); Bitmap mBitmap=null; Toast.makeText(getApplicationContext(),""+strs,Toast.LENGTH_LONG).show(); if(!"".equals(strs)&&strs!=null){ try{ mBitmap=CreateTwoDcode(strs); }catch (WriterException e){ e.printStackTrace(); } if (mBitmap!=null){ mIvCode.setImageBitmap(mBitmap); } } } }); mBtOneCode.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String str =mEtInput.getText().toString().trim(); int size=str.length(); for (int i=0;i<size;i++){ int c=str.charAt(i); if (19968<=c&&c<40523){ Toast.makeText(getApplicationContext(),"生成的条形码不能使中文",Toast.LENGTH_LONG).show(); return; } } Bitmap bmp=null; try{ if (!"".equals(str)&&str!=null){ bmp=CreateOneDcode(str); } }catch (WriterException e){ e.printStackTrace(); } if (bmp!=null){ mIvCode.setImageBitmap(bmp); } } });} public Bitmap CreateTwoDcode(String conternet)throws WriterException{ BitMatrix bitMatrix=new MultiFormatWriter().encode(conternet, BarcodeFormat.QR_CODE,300,300); int width=bitMatrix.getWidth(); int height=bitMatrix.getHeight(); int[] pixels=new int[width*height]; for (int i=0;i<height;i++){ for (int j=0;j<width;j++){ if(bitMatrix.get(j,i)){ pixels[i*width+j]=0xff000000; } } } Bitmap bitmap=Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels,0,width,0,0,width,height); return bitmap; } public Bitmap CreateOneDcode(String conternet)throws WriterException{ BitMatrix bitMatrix=new MultiFormatWriter().encode(conternet,BarcodeFormat.CODE_128,500,200); int width=bitMatrix.getWidth(); int height=bitMatrix.getHeight(); int[] pixels=new int[width*height]; for (int y=0;y<height;y++){ for (int x=0;x<width;x++){ if (bitMatrix.get(x,y)){ pixels[y*width+x]=0xff000000; } } } Bitmap bitmap=Bitmap.createBitmap(width,height, Bitmap.Config.ARGB_8888); bitmap.setPixels(pixels,0,width,0,0,width,height); return bitmap; }private void initView() { mEtInput= (EditText) findViewById(R.id.et_inputText); mBtOneCode= (Button) findViewById(R.id.bt_one); mBtTwoCode= (Button) findViewById(R.id.bt_two); mIvCode= (ImageView) findViewById(R.id.iv_code);}
}
其中的MultiFormatWriter(), BitMatrix 等 均为Zxing的方法
注意:Zxing 是不支持中文二维码的
最后附上效果图,即可以生成二维码,又可以生成条形码
亲测 可以扫,有结果,毕竟第一发博客,我是个新人还会继续努力,希望大神指点
阅读全文
1 0
- Zxing生成二维码 条形码
- zxing生成二维码或者条形码
- Zxing二维码、条形码扫描/生成
- ZXing 生成二维码和条形码
- ZXing生成条形码、二维码、带logo二维码
- 用ZXing 生成条形码和二维码图片
- ZXing二维码、条形码生成和扫描
- Android基于Zxing实现二维码,条形码扫描和生成二维码
- java二维码,条形码,【ZXing】
- 条形码+二维码,开源ZXing
- ZXing实现条形码、二维码
- 碎步二:zxing核心包生成条形码和二维码
- Android学习之 google Zxing 二维码条形码生成与解析
- iOS 条形码 二维码 的生成 和 扫描 zBarSDK zXing
- Android ZXing二维码、条形码的生成和解析
- ZXing生成和读取条形码二维码(C#)
- .NET C#利用ZXing生成、识别二维码/条形码
- java zxing二维码(可带logo)、条形码生成解析
- spring boot jpa配置
- jQuery实现的简单鼠标拖拽功能
- java中的线程安全
- 关于iOS11下关于UIViewController属性弃用导致含有ScrollView功能的控件出现问题的解决方案
- 利用@media screen实现网页布局的自适应
- Zxing生成二维码 条形码
- 重写BaseAdapter后getView的模版
- Oracle格式模型(Format Models)
- 基于SRS的RTMP分发技术方案
- 全排列的编码与解码——康托展开
- PandoraBox 路由器 IPv6穿透
- 根据关键词 抓取ebayno title price
- 使用nmap验证漏洞(持续更新中。。。)
- tablayout的主页面应用