android.graphics.Picture未在API 14中绘制+;
当我将清单中的targetAPI从13更改为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);
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(冰激凌三明治)或更高,则默认情况下整个应用程序启用硬件加速
有两种方法可以解决此问题:
应用程序
标记中。这将禁用整个应用程序的硬件加速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"}