我正在使用canvas做一些值得的,我需要获得以下值:
// This one:
window.devicePixelRatio
// and any one of:
Context2d.webkitBackingStorePixelRatio ||
Context2d.mozBackingStorePixelRatio ||
Context2d.msBackingStorePixelRatio ||
Context2d.oBackingStorePixelRatio ||
Context2d.backingStorePixelRatio
这些似乎在GWT等效类中不可用(我认为) - 我是否必须创建一个本机方法来抓取它们?还是有更好的方法来实现它?
由于
答案 0 :(得分:1)
你是对的,它们在核心gwt类中不可用,所以你必须使用jsni来实现它们。
另一种选择是使用gwt-2.5.0中包含的elemental并拥有这些方法,但元素仅用于webkit。
[编辑]
您可以使用所需的jsni方法创建自己的context2类,并使用叠加转换将gwt context2转换为您的类:
public class MyContext2 extends Context2d {
public final native float webkitBackingStorePixelRatio() /*-{
return this.webkitBackingStorePixelRatio;
}-*/;
}
Context2d ctx = ...;
// call your method through the cast()
float ratio = ctx.<MyContext2>cast().webkitBackingStorePixelRatio();
// or convert the context to your class
MyContext2 mctx = ctx.cast();
float ratio = mctx.webkitBackingStorePixelRatio();