【发布时间】:2014-05-29 21:01:05
【问题描述】:
我有一个从 SVG 文件加载的图片对象,并且我设置了 hardwareAccelerated=false 以使其适用于所有设备。
由于 android 4.0.4 存在错误,我必须将图片转换为位图,然后这样做:
...
...
public void draw(Canvas canvas) {
...
...
//myPicture size is 9000x5000 but I want to display only this portion
clipRect.set(50, 50, 370, 530);
Bitmap bmp = getBitmapFromPicture(myPicture, clipRect);
canvas.drawBitmap(bmp, 0, 0, null);
bmp.recycle();
...
...
}
public static Bitmap getBitmapFromPicture(Picture picture, RectF clipRect) {
Bitmap bitmap = Bitmap.createBitmap(Math.round(clipRect.width()), Math.round(clipRect.height()), Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
canvas.drawPicture(picture);
}
现在我想剪辑图片,因为我只想显示它的可见屏幕部分。
但 canvas.drawPicture 不接受 srcRect 参数。
怎么可能做到这一点?
编辑:
通过翻译画布:canvas.translate(-50, -50) 似乎也翻译了位图。
【问题讨论】:
标签: android svg bitmap android-drawable android-bitmap