我创建了一个自定义 WebView,它将用于播放 gif 文件。现在我需要将它绘制到我的画布上的特定位置并使用设定的尺寸。
但是,我不完全确定如何将这个包含 Gif 的 webView 转换为位图,以便我可以将它插入到 Canvas 上的正确位置。
我的网络视图类:
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,它工作正常,只是无法将它插入到我的画布中。