2013-09-23 83 views
1

我創建了一個自定義的WebView,它將用於播放gif文件。現在我需要把它畫到我的畫布上,並且使用一定的尺寸。將WebView繪製到畫布上的設置位置

但是,我並不確定如何將包含Gif的此webView轉換爲位圖,以便將其插入到Canvas上的正確位置。

我的WebView類:

public class finishWebView extends WebView 
{ 

    public finishWebView(Context context, String path) 
    { 
     super(context); 
     loadUrl(path); 
    } 
} 

獲得了主要活動的原始資源:

finishWebView view = new finishWebView(context, "file:///android_asset/test.gif"); 

原單碼到我的圖像轉換爲正確的尺寸,並插入到畫布:

finish = BitmapFactory.decodeResource(getResources(), R.drawable.finish); 
finish = Bitmap.createScaledBitmap(finish, (PhoneWidth/5), (PhoneWidth/5), true); 

protected void onDraw(Canvas canvas) 
{ 
    canvas.drawBitmap(finish, (j * totalCellWidth), (i * totalCellHeight), null); 
} 

所以基本上,我需要找出一種方法來繪製與gif圖像顯示webView到我畫布中的指定位置,類似於我目前用'canvas.drawBitmap(...)'所做的。

-----------------------------------編輯---------- ------------------------------

使用上面提到的代碼片段mikejonesguy,我已經到了這裏,但是這現在只是顯示一個空白屏幕。

public static Bitmap createBitmapFromView(View v) { 
    Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.RGB_565); 
    Canvas c = new Canvas(b); 
    v.draw(c); 
    return b; 
} 

// Within onDraw 
GIFView gifView = new GIFView(context); 
canvas.drawBitmap(createBitmapFromView(gifView), (j * totalCellWidth), (i * totalCellHeight), null); 

我已經測試了正常的XML佈局頁我GIFView和它工作正常,只是不能把它插入到我的畫布。

+0

我通過擴展查看,而網頁視圖中創建GifView和它的工作fine.And它從玩GIF圖像的能力SD卡和資源也。 –

+0

你有沒有任何示例代碼,讓我知道你是如何實現它,以及如何將它添加到我的onDraw中具有動態大小的設置位置? –

回答

0

有幾種方法可以將視圖轉換爲位圖。這種方法是一種方式:

public static Bitmap createBitmapFromView(View v) { 
    Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.RGB_565); 
    Canvas c = new Canvas(b); 
    v.draw(c); 
    return b; 
} 

你必須等待,直到你的web視圖已完成加載GIF,當然,你叫這之前得到的位圖。

如果你只是想打一個GIF動畫,這其他的SO後可能會有所幫助:Showing gif in android

+0

不太確定你的上面的代碼如何幫助我在畫布中實現一個gif到一個集合/動態位置? –

+0

上面的代碼將webview轉變爲位圖,然後您可以隨心所欲地繪製該位圖。但是,讓我問一下,你是否真的需要webview(即你的佈局的webview部分將會被用戶看到嗎?或者你只需​​要GIF? – mikejonesguy

+0

我只需要在設置的位置繪製gif我的畫布,所以沒有我不需要一個webview。但是,不知道如何玩gif。基本上我想用我的原始問題中的代碼來替換位圖'完成'與gif圖像 –