Android zxing二维码扫描 扫描框适应各种分辨率

本文介绍了一种根据屏幕分辨率计算扫描框位置及尺寸的方法。通过获取屏幕分辨率,并按一定比例计算扫描框宽度和高度,确定其在屏幕上的位置。适用于需要设定特定扫描区域的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. public synchronized Rect getFramingRect() {  
  2.         if (framingRect == null) {  
  3.             if (camera == null) {  
  4.                 return null;  
  5.             }  
  6.             Point screenResolution = configManager.getScreenResolution();  
  7.             if (screenResolution == null) {  
  8.                 // Called early, before init even finished  
  9.                 return null;  
  10.             }  
  11.   
  12.             // int width = findDesiredDimensionInRange(screenResolution.x,  
  13.             // MIN_FRAME_WIDTH, MAX_FRAME_WIDTH);  
  14.             // int height = findDesiredDimensionInRange(screenResolution.y,  
  15.             // MIN_FRAME_HEIGHT, MAX_FRAME_HEIGHT);  
  16.   
  17.             /* 扫描框修改 */  
  18.             DisplayMetrics metrics = context.getResources().getDisplayMetrics();  
  19.             int width = (int) (metrics.widthPixels * 0.6);  
  20.             int height = (int) (width * 0.9);  
  21.   
  22.             int leftOffset = (screenResolution.x - width) / 2;  
  23.             int topOffset = (screenResolution.y - height) / 4;  
  24.             framingRect = new Rect(leftOffset, topOffset, leftOffset + width,  
  25.                     topOffset + height);  
  26.             Log.d(TAG, "Calculated framing rect: " + framingRect);  
  27.         }  
  28.         return framingRect;  
  29.     }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值