Android 安卓二维码扫描仪,背景色是半透明的,如何设置特定区域的全透明?

Android 安卓二维码扫描仪,背景色是半透明的,如何设置特定区域的全透明?,android,Android,不知道是否有人能给我一些建议 背景是图像视图 <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" android:layout_centerHorizontal="true"

不知道是否有人能给我一些建议

背景是图像视图

    <ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerInParent="true"
    android:layout_centerHorizontal="true"
    android:alpha="0.1"
    android:background="#FF000000" />

扫描仪区域也是一个图像视图

    <ImageView
    android:id="@+id/scan_view_finder"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:layout_centerInParent="true"
    android:layout_centerHorizontal="true"
    android:background="@drawable/scanningframe" />

这是扫描帧代码

解决方案构思:

  • 使用位图,迭代所有像素,并将不在视图内的像素变灰。
    • (+)仅限代码
    • (-)难以实施
    • (-)可能需要一些时间
  • 在使屏幕变暗的同时,将区域照亮(使用带透明度的白色背景色)
    • (+)易于实现
    • (-)可能会导致颜色精度损失
  • 在该区域周围使用4个视图以使背景变暗
    • (+)易于实现
    • (-)获取的视图比所需的多
  • 创建一个带有区域度量的位图,并在其上绘制整个图像,这样您可以得到一个较小的图像片段。
    • (+)比第一个位图想法更容易实现(只需计算中间值)
    • (-)可能需要一些时间
为第3点编辑

- horizontal linearlayout
    - view
    - vertical layout
        - view
        - area
        - view
    - view

谢谢你的建议,看起来所有这些解决方案都需要很多时间。如果没有其他更简单的解决方案,那么我将切换到另一个扫描仪库。@MichaelChou您应该能够非常轻松地实现第三个扫描仪库(查看-回答-编辑)。这是最简单的解决方案(在5分钟内实现),您将找不到任何其他库为您实现此功能,因为这是一个非常具体的问题。即使这样,也不值得我这么努力让我试试你的建议,然后再告诉你答案。非常感谢。