Android 识别图片二维码,以及设置状态栏颜色

zxing依赖:
compile 'cn.yipianfengye.android:zxing-library:2.2'
初始化:private String SAVE_PIC_PATH = Environment.getExternalStorageState().equalsIgnoreCase(Environment.MEDIA_MOUNTED)? Environment.getExternalStorageDirectory().getAbsolutePath() : "/mnt/sdcard";//private String SAVE_REAL_PATH = SAVE_PIC_PATH + "/good/savePic";//保存的确
Bitmap bitmap;
private String ends;

实现长按识别图片二维码:

      imageView.setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic boolean onLongClick(View view) {try {Bitmap bmp = captureScreen(MainActivity.this);saveFile(bmp, System.currentTimeMillis() + ".png");try {CodeUtils.analyzeBitmap(ends, new CodeUtils.AnalyzeCallback() {@Overridepublic void onAnalyzeSuccess(Bitmap mBitmap, String result) {
//                            imageView.setImageBitmap(mBitmap);Toast.makeText(MainActivity.this, "解析结果:" + result, Toast.LENGTH_LONG).show();}@Overridepublic void onAnalyzeFailed() {Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show();}});} catch (Exception e) {e.printStackTrace();}} catch (IOException e) {e.printStackTrace();}return false;}});

工具方法1:

    private void saveFile(Bitmap bm, String fileName) throws IOException {String subForder = SAVE_REAL_PATH;File foder = new File(subForder);if (!foder.exists()) foder.mkdirs();File myCaptureFile = new File(subForder, fileName);Log.e("lgq", "图片保持。。。。wwww。。。。" + myCaptureFile);ends = myCaptureFile.getPath();if (!myCaptureFile.exists()) myCaptureFile.createNewFile();BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);bos.flush();bos.close();
//        ToastUtil.showSuccess(getApplicationContext(), "已保存在/good/savePic目录下", Toast.LENGTH_SHORT);//发送广播通知系统}




工具方法2:

@SuppressLint("NewApi")
private Bitmap captureScreen(Activity context) {
    View cv = context.getWindow().getDecorView();

    cv.setDrawingCacheEnabled(true);
    cv.buildDrawingCache();
    Bitmap bmp = cv.getDrawingCache();
    if (bmp == null) {
        return null;
    }

    bmp.setHasAlpha(false);
    bmp.prepareToDraw();
    return bmp;
}

权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Android6.0以上申请权限:

public final class CheckPermissionUtils {private CheckPermissionUtils() {}//需要申请的权限private static String[] permissions = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.CAMERA};//检测权限public static String[] checkPermission(Context context){List<String> data = new ArrayList<>();//存储未申请的权限for (String permission : permissions) {int checkSelfPermission = ContextCompat.checkSelfPermission(context, permission);if(checkSelfPermission == PackageManager.PERMISSION_DENIED){//未申请data.add(permission);}}return data.toArray(new String[data.size()]);}
}

/*** 初始化权限事件*/
private void initPermission() {//检查权限String[] permissions = CheckPermissionUtils.checkPermission(this);if (permissions.length == 0) {//权限都申请了//是否登录} else {//申请权限ActivityCompat.requestPermissions(this, permissions, 100);}
}

 

demo连接:https://download.csdn.net/download/meixi_android/86764222 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之sed

sed 是一个流编辑器(stream editor)&#xff0c;主要用来执行文本替换。但 sed 的主要设计目的是以批处理的方式而不是交互的方式来编辑文件。 命令简介 基本命令格式 sed [常用选项] 命令文本 输入 常用选项 -n (--quiet, --silent)&#xff1a;安静模式。在 sed 的基本用法中…

百度经验 回享计划

https://jingyan.baidu.com/user/income 转载于:https://www.cnblogs.com/qdrs/p/7940353.html

Android 扫描二维码demo

demo下载链接&#xff1a;https://download.csdn.net/download/meixi_android/10779714 zxing依赖&#xff1a; compile cn.yipianfengye.android:zxing-library:2.2 扫描类&#xff1a; /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;13164716840163.com* 日期&…

前端学习(2666):完成vue3.0的todolist编辑

1点击编辑 2编辑逻辑 3进入编辑状态

课后作业-团队编程项目总结

成员&#xff1a;王志昂&#xff08;组长&#xff09; 郑 月 李古宇 孙晨旭 鞠牧孜 程冠菲 项目名称&#xff1a;吃货之家 早在商朝末年&#xff0c;太公望(别名:姜太公&#xff0c;姜子牙)在营丘之战时所创制的太公望红焖鸡&#xff0c;在姜太公建立齐国后&#xff0c;红焖鸡(…

前端学习(2667):退出编辑状态

1逻辑实现 2加上myinput 3判断myinput 调整元素 4

前端学习(2668):删除功能

1定义删除 2删除方法 3删除演示

SICK TiM561激光雷达的使用

TIM系列激光扫描传感器原理&#xff1a; 激光发射器发出激光脉冲&#xff0c;当激光碰到物体后&#xff0c;部分激光反射回激光接收器。通过计算发射/接收脉冲时间差&#xff0c;可以计算出距离值。激光扫描器连续不停的发射激光脉冲&#xff0c;由旋转的光学机构将激光脉冲按一…

记一次MySQL手工注入

本来想找个装安全狗的站试下绕过&#xff0c;safe dog没找到&#xff0c;但随便一搜搜到一个小站有SQLi&#xff0c;正好借此机会复习下手工注入&#xff08;新版Firefox我吐槽一下&#xff0c;hackbar这么好用的工具&#xff0c;说阉割就阉割&#xff0c;哎&#xff09; 小站没…

Netcdf对数据进行裁剪

对三维数据进行裁剪 List<Range> tyxRanges new ArrayList<>(); tyxRanges.add(new Range(null,0,12)); tyxRanges.add(new Range(null,0,12)); tyxRanges.add(new Range(null,0,12)); Array varData varObject.read(tyxRanges); ncWrite.write(varVar, varData…

Android: 解决动画完成后位置恢复到初始位置的问题

今天在使用TranslateAnimation位移一个LinearLayout时&#xff0c;发现动画完成后又会自动回到初始的状态&#xff0c;设置了fillAfter也不太管用。 仔细研究了一下&#xff0c;发现&#xff1a; 这种现象很正常&#xff0c;因为TranslateAnimation只负责实现位移动画效果&…

Android GridView,recycleview,栅格布局

<color name"gray_b7">#F5F5F5</color>//activity背景色&#xff0c;itemview底部&#xff08;横向栅格条&#xff09;背景色&#xff0c;itemview主色白 设置竖向栅格条 adapter中设置 int w MainApplication.getnScreenWidth();holder.itemView.set…

Android 微信分享

起调效果 分享到朋友 分享到朋友圈 分享效果&#xff1a; 1、登录 微信开发平台 创建Android应用 微信开放平台&#xff1a;https://open.weixin.qq.com/cgi-bin/index?thome/ind…