2013-03-26 28 views
0

请与本Scala的类帮助我,我要实现它的Java这里,它是:Scala的类的Java

class StretchVideoView(context:Context, attr:AttributeSet) 
extends VideoView(context, attrib) { 
    def measure(measureSpec:Int):Int = { 
     val specMode = View.MeasureSpec.getMode(measureSpec) 
     View.MeasureSpec.getSize(measureSpec) 
    } 

    override def onMeasure(widthMeasureSpec:Int, heightMeasureSpec:Int) { 
     val (w,h) = (measure(widthMeasureSpec), measure(heightMeasureSpec)) 
     getHolder().setFixedSize(w,h) 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec) 
    } 
} 

我也试图在这里做我自己是我的Java代码:

class StretchVideoView extends VideoView { 

     public StretchVideoView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public int measure(int measureSpec) { 
     int specMode = View.MeasureSpec.getMode(measureSpec) 
     ??? View.MeasureSpec.getSize(measureSpec); // may be + here ??? 

     return specMode; // ??? 
    } 

     // and I'm not sure about this 
    @Override 
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
     int w = measure(widthMeasureSpec); 
     int h = measure(heightMeasureSpec); 
     getHolder().setFixedSize(w,h); 
      super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
    } 
} 

任何建议如何在Java上实现它?

这里是原来的文章,此代码: original code

+2

'返回View.MeasuresSpect.getSize(..)'和“没关系”。 – 2013-03-26 20:38:23

回答

2

我认为你需要为measure做这样的事情:

public int measure(int measureSpec) { 
    int specMode = View.MeasureSpec.getMode(measureSpec) 
    return View.MeasureSpec.getSize(measureSpec); 
} 
+0

谢谢,但specMode变量呢?我只是返回'View.MeasureSpec.getSize(measureSpec)'使用你的代码很奇怪。 – 2013-03-26 20:46:24

+0

这就是你发布的scala代码正在做的事情。所以是的,斯卡拉代码也有点奇怪。 – Noah 2013-03-26 20:47:30

+0

嗯..无论如何。 – 2013-03-26 20:48:56