2012-05-01 178 views
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; 
} 

回答

7

從向量作爲,顯然你的Drawable實際上並不是一個BitmapDrawable。您需要改爲在Bitmap上繪製Drawable。看到這個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); 

顯然,在你的情況,你會明確指定,而不是試圖獲得可繪製的真正高度/寬度你想要的大小。

+0

非常感謝,我一直堅持這幾個小時。 –