图像侦听器无法从片段中选择图像

时间:2017-09-25 12:32:02

标签: android android-fragments raspberry-pi3 android-things camera-api

图像可用侦听器拾取片段的图像,并在图像可用时立即连续调用onimageavailble()。代码的实例如下:

protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(null);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
           WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    setContentView(R.layout.activity_camera);
    setFragment();
}

setFragment()代码为:

    protected void setFragment() {
        final Fragment fragment =
            CameraConnectionFragment.newInstance(
                new CameraConnectionFragment.ConnectionCallback() {
                  @Override
                  public void onPreviewSizeChosen(final Size size, final int rotation) {
                    CameraActivity.this.onPreviewSizeChosen(size, rotation);

                  }
                },
                this,
                getLayoutId(),
                getDesiredPreviewFrameSize());
        getFragmentManager()
            .beginTransaction()
            .replace(R.id.container, fragment)
            .commit();
   }

代码在Android上运行正常,所以我希望它在Android Things设备上实现,但我收到警告声明' 一个TextureView或子类只能用于启用硬件加速'并且永远不会调用onimageavailble()。我在代码中进行了必要的更改以解决警告,但仍然不会调用onimageavailble()

在调试raspberry Pi3中用于安装android的代码时,我注意到片段中没有显示相机流,因为图像侦听器无法选择它。

请为我提供此问题的解决方案

1 个答案:

答案 0 :(得分:1)

您正在使用WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED(使用AndroidThings 0.3.0

R Pi的硬件​​加速仅在AndroidThings 0.5.0

中引入

请参阅此处的发行说明:

https://developer.android.com/things/preview/releases.html

  

随着Android O的更新,现在支持OpenGL ES 2.0。带GPU的平台(如Raspberry Pi 3)现在也支持硬件加速。

请更新您正在使用的AndroidThings版本。