我有一个可绘制的对象,它是一个向量。由于你不能裁剪(或因为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;
}
答案 0 :(得分:7)
来自矢量,显然您的Drawable
实际上不是BitmapDrawable
。您需要在Drawable
上绘制Bitmap
。请参阅此answer我提出的另一个问题:
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);
显然,在您的情况下,您可以明确指定所需的大小,而不是尝试获取可绘制的内在高度/宽度。