尝试从视图中获取位图时总是出现 IllegalStateException 错误

Getting always IllegalStateException error when trying to obtain bitmap from view

我正在尝试从 GraphView 获取位图,以免生成两次相同的图形。我不断收到以下错误(尽管 hardwareAccelerated=true):

java.lang.IllegalStateException: GraphView must be used in hardware accelerated mode.You can use android:hardwareAccelerated="true" on your activity

-这是我尝试执行此操作的代码:

ImageView imageView = (ImageView) convertView.findViewById(R.id.imageView);
            Bitmap bitmap = Bitmap.createBitmap(graphView.getWidth(), graphView.getHeight(), Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(bitmap);
            Drawable bgDrawable = graphView.getBackground();
            if (bgDrawable != null) {
                bgDrawable.draw(canvas);
            } else {
                canvas.drawColor(Color.BLUE);
            }

            graphView.draw(canvas);
            imageView.setImageBitmap(bitmap);

我试过好几种方法,但没有一个成功。我什至尝试将 graphView 放在布局中并从布局中获取位图,但这也没有用(我得到完全相同的错误)。

如有任何帮助,我们将不胜感激!

尝试

<activity ... />
<activity android:hardwareAccelerated="true" />

在你的清单文件中。

试试这个:

Bitmap bitmap = Bitmap.createBitmap(graphView.getWidth(),graphView.getHeight(),Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(bitmap){

                @Override
                public boolean isHardwareAccelerated(){
                    return true;
                }
            };

            graphView.draw(canvas);
            imageView.setImageBitmap(bitmap);