Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android.graphics.Picture未在API 14中绘制+;_Android_Graphics_Android Canvas_Cyanogenmod - Fatal编程技术网

android.graphics.Picture未在API 14中绘制+;

android.graphics.Picture未在API 14中绘制+;,android,graphics,android-canvas,cyanogenmod,Android,Graphics,Android Canvas,Cyanogenmod,当我将清单中的targetAPI从13更改为14(或更高)时,图片不再工作。不管怎样 范例 Paint bluepaint = new Paint(); bluepaint.setColor(Color.BLUE); Picture pic = new Picture(); Canvas testcanvas = pic.beginRecording(300, 300); testcanvas.drawColor(Color.BLUE);

当我将清单中的targetAPI从13更改为14(或更高)时,图片不再工作。不管怎样

范例

    Paint bluepaint = new Paint();
    bluepaint.setColor(Color.BLUE);

    Picture pic = new Picture();
        Canvas testcanvas = pic.beginRecording(300, 300);
        testcanvas.drawColor(Color.BLUE);
    pic.endRecording();

    canvas.drawColor(Color.RED);
    canvas.drawLine(0, 0, 480, 480, bluepaint);

    canvas.drawPicture(pic);
这应该从图片中画出一个蓝屏,它在API 13和更低版本中是这样做的。 它不会从纯画布中绘制蓝色,而只绘制红色。draw调用

我看不出API 13到14有什么变化可以解释这一点

然而,我在Galaxy S2上使用了cyanogenmod(所以我可以运行4.3),不确定他们是否改变了cyanogen上的原生元素,几周前就切换到了它

你知道去哪里寻找答案,或者是什么导致了这一切吗

编辑

工作

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="13" />

不起作用

<uses-sdk
    android:minSdkVersion="10"
    android:targetSdkVersion="14" />

如果
targetSdkVersion
为14(冰激凌三明治)或更高,则默认情况下整个应用程序启用硬件加速

有两种方法可以解决此问题:

  • 将android:hardwareAccelerated=“false”添加到AndroidManifest.xml中的
    应用程序
    标记中。这将禁用整个应用程序的硬件加速

  • 您可以使用硬件加速支持的
    Bitmap
    Canvas.drawBitmap()


  • 参考:

    使用这些依赖项。。。这里26.0.2是一个bug,版本14不受支持。给出这些依赖项:-

    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
    
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.0.2'
        implementation 'com.android.support:design:27.1.1'
    
        compile 'com.android.support:support-v4:27.1.1'
    
    并制作SDK版本:-

    **

    **

    但是,您可以使用依赖项尝试一次,而无需更改SDK版本


    记住canvas.restore();不要用

    我的错误,图片的画布大小对填充通话并不重要。在了解问题后,我发现这个解决方案最适合我的情况
    android {
        compileSdkVersion 27  
        defaultConfig {
            applicationId "com.example.yeshveer.mygraphics"
            minSdkVersion 21
            targetSdkVersion 26
            versionCode 1
            versionName "1.0"}