3

我有一个可绘制的对象,它是一个向量。由于您无法裁剪(或由于 ICS 强制硬件加速而剪辑)可绘制对象,因此它使精灵动画无用。

我正在尝试将drawable转换为具有特定大小的位图(最低屏幕尺寸的百分比以获得最佳效果)。

当然,该版本需要具有超强的内存效率。

我需要帮助的是创建具有特定大小的位图,这是我到目前为止得到的:

public Bitmap svgTObitmap(String name, int percentage, int screen_width, int screen_height)
{
    _resID = _context.getResources().getIdentifier( name , "raw" , _context.getPackageName());
    SVG svg = SVGParser.getSVGFromResource(_context.getResources(), _resID);

    Drawable drawable = svg.createPictureDrawable();

    Bitmap bmp = ((BitmapDrawable)drawable).getBitmap();

    return bmp;
}
4

1 回答 1

7

来自一个向量,显然你Drawable实际上不是一个BitmapDrawable. 您需要改为DrawableBitmap. 请参阅我给另一个问题的答案:

Bitmap bmp = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(bmp); 
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);

显然,在您的情况下,您将明确指定所需的大小,而不是尝试获取可绘制对象的固有高度/宽度。

于 2012-05-01T22:20:55.843 回答