#基于 Zxing, 初学Android  代码质量不高

//长按,通过zxing读取图片,判断是否有二维码
bigImage.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View viewm) {
Bitmap obmp = ((BitmapDrawable) (bigImage).getDrawable()).getBitmap();
int width = obmp.getWidth();
int height = obmp.getHeight();
int[] data = new int[width * height];
obmp.getPixels(data, , width, , , width, height);
RGBLuminanceSource source = new RGBLuminanceSource(width, height, data);
BinaryBitmap bitmap1 = new BinaryBitmap(new HybridBinarizer(source));
QRCodeReader reader = new QRCodeReader();
Result re = null;
try {
re = reader.decode(bitmap1);
} catch (NotFoundException e) {
e.printStackTrace();
} catch (ChecksumException e) {
e.printStackTrace();
} catch (FormatException e) {
e.printStackTrace();
}
if (re == null) {
showAlert(obmp);
} else {
showSelectAlert(obmp, re.getText());
}
return false;
}
}); private void showAlert(final Bitmap bitmap) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("保存图片")
.setCancelable(false)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterfacem, int i) {
saveImageToGallery(bitmap);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterfacem, int i) {
}
});
builder.show();
} private void showSelectAlert(final Bitmap bitmap, final String url) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择");
String str[] = {"保存图片", "扫二维码"};
builder.setItems(str, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterfacem, int i) {
switch (i) {
case : {
saveImageToGallery(bitmap);
}
break;
case : {
Intent n = new Intent(EnlargeimagevActivity.this, DetailActivity.class);
n.putExtra(DetailActivity.BUNDLE_KEY_DISPLAY_TYPE, DetailActivity.WEBVIEW_DETAIL);
n.putExtra(DetailwebFragment.WEB_URL, url);
startActivity(n);
}
break;
}
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterfacem, int i) { }
});
builder.show();
}
zxing 下载  [http://download.csdn.net/detail/eric19920720/9709305]

最新文章

  1. Linux文件操作的主要接口API及相关细节
  2. C# 提供两种切割圆形图片的方式
  3. Weiphp随笔,百度天气API接口
  4. PhpMyAdmin管理,登录多台远程MySQL服务器
  5. webpages框架使用@razor语法向js代码传递Json字符串
  6. 用Spring Data JPA 基于内存存储pojo的简单案例
  7. Android简单例子——AlertDialog
  8. ElasticSearch(6)-结构化查询
  9. ZooKeeper的注意事项
  10. [ios]quartz2d画板功功能实现核心代码
  11. 在web项目启动时,使用监听器来执行某个方法
  12. NLP —— 图模型(一)隐马尔可夫模型(Hidden Markov model,HMM)
  13. MySql查询不区分大小写解决方案(两种)
  14. 2018-2019 20165319 网络对抗 Exp4 恶意代码分析
  15. Java Web 获取客户端真实IP
  16. python 模拟豆瓣登录(豆瓣6.0)
  17. Vue 组件&组件之间的通信 之 父组件向子组件传值
  18. 微信小程序wx.navigateTo页面不跳转
  19. JAVA图片验证码(转自“云在青山”)
  20. SSH连接Linux操作:

热门文章

  1. .apply和.call用法和区别
  2. 2018秋招blibli算法工程师
  3. codeforces 468B two set(并查集)
  4. [CodeForces]786B Legacy
  5. ThinkPHP3.1.3分表状态时候的自动验证的代码BUG
  6. Vue接口日常学习
  7. Ubuntu下安装Tensorflow
  8. Google Spanner (中文版)
  9. 利用redis实现elasticsearch入库去重
  10. Cache index coloring for virtual-address dynamic allocators