可绘制到位图,可绘制的未知大小/维度

Oli*_*xon 3 java android bitmap drawable

我有一个可绘制的对象,它是一个向量.由于你不能裁剪(或因ICS强制硬件加速而剪辑)一个drawable它使得精灵动画无用.

我正在尝试将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;
}
Run Code Online (Sandbox Code Playgroud)

kab*_*uko 7

从一个载体,显然你Drawable实际上不是一个BitmapDrawable.你需要改为画Drawable上一个Bitmap.看到我给另一个问题的答案:

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);
Run Code Online (Sandbox Code Playgroud)

显然,在您的情况下,您将明确指定所需的大小,而不是尝试获取drawable的固有高度/宽度.